From ab9ce6e9d1568be54452739c73f5d8337ee11ccf Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Wed, 2 Mar 2022 14:34:37 +0000 Subject: [PATCH 0001/1437] Update CI_validation_metrics.md --- sbn/sbnci_wiki/CI_validation_metrics.md | 29 ++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/sbn/sbnci_wiki/CI_validation_metrics.md b/sbn/sbnci_wiki/CI_validation_metrics.md index 66f0be2f3..76a4846cd 100644 --- a/sbn/sbnci_wiki/CI_validation_metrics.md +++ b/sbn/sbnci_wiki/CI_validation_metrics.md @@ -14,9 +14,32 @@ Location: `/pnfs//persistent/ContinuousIntegration/input/validat # Validation Metrics by Working Group ## TPC reco -- Shower completeness, purity, true kinematics for electrons and PandoraShowers -- Tracks length, completeness, purity, true kinematics for muons and protons -- PFParticles +- Shower Validation Module + - Hit & energy completeness + - Hit & energy purity + - Reconstructed shower direction and start point relative to truth + - Reconstructed shower energy & dEdx +- Reconstruction Efficiency Module + - Hit completeness & purity (for true electrons, muons and protons) + - Reconstruction efficiency in terms of energy, momentum and angles in xy, xz and yz (for true electrons, muons and protons) + - Reconstruction efficiency with quality requirements in terms of energy, momentum and angles in xy, xz and yz (for true electrons, muons and protons) +- PFP Slice Module + - Slice completeness & purity (by hits) + - Nu score (slice ID) + - Number of neutrino slices + - Number of slices + - Vertex position (x, y & z) + - Vertex accurary (x, y & z) relative to truth + - Slice PDG +- PFP Module + - Energy completeness & purity (per pfp, electron, muon and proton) + - Hit completeness & purity (per pfp, electron, muon and proton) + - Space point to hit ratio (per pfp, electron, muon and proton) + - Number of reconstructed pfps, showers & tracks (per electron, muon and proton) + - Number of reconstructed pfps, neutrino pfps, showers & tracks per event + - Number of hits & track ID score per pfp +- _Track Validation Module_ + - Ported to sbnci but not yet included in the triggers ## TPC sim/calibration From 6613cf3d9f971ff8069defe51f34d91083bdd06b Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 4 Mar 2022 15:47:40 +0000 Subject: [PATCH 0002/1437] add CI test command --- AnalysisInfrastructure/how-to-develop.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/how-to-develop.md b/AnalysisInfrastructure/how-to-develop.md index acd5c9149..15c9c3d0c 100644 --- a/AnalysisInfrastructure/how-to-develop.md +++ b/AnalysisInfrastructure/how-to-develop.md @@ -162,7 +162,7 @@ working group colleague, someone familiar with your code, reviewers [list](sugge 3. Address request, changes or comments. -4. Trigger the integrated CI test with a comment (for e20/c7:prof). +4. Trigger the integrated (for e20/c7:prof) CI test with the comment `trigger build` in your GitHub PR . If successful your code will be merged into the stack. Wait for nightly build (e20/c7:debug) outputs (Dashboard or Slack). 5. Your code is ready to be released. Once approved this will be merged into our next release! From 05546160c93d0a960168a118a2cb1ba492fbe282 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 4 Mar 2022 12:58:29 -0600 Subject: [PATCH 0003/1437] Create ReleaseNotes094400.md --- sbndcode_wiki/Releases/ReleaseNotes094400.md | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes094400.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes094400.md b/sbndcode_wiki/Releases/ReleaseNotes094400.md new file mode 100644 index 000000000..90f3c599e --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes094400.md @@ -0,0 +1,53 @@ +--- +layout: page +title: ReleaseNotes094400 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.44.00 | 04 Mar 2022 | [ReleaseNotes](ReleaseNotes094400.html) | +| --- | --- | --- | + + + +sbndcode v09_44_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_44_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_44_00/sbndcode-v09_44_00.html) + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_44_00 +* larsoft v09_44_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-03-04 Patrick Green : Merge branch 'release/v09_44_00' +* 2022-03-04 Patrick Green : Update to v09_44_00 +* 2022-02-25 Patrick Green : Merge tag 'v09_43_00' into develop + +sbndutil +--------------------------------------------------- + +* 2022-03-04 Patrick Green : Merge tag 'v09_44_00' into develop +* 2022-03-04 Patrick Green : Merge branch 'release/v09_44_00' +* 2022-03-04 Patrick Green : Update to v09_44_00 +* 2022-02-25 Patrick Green : Merge tag 'v09_43_00' into develop From a6a1603ea6577b5e557c3dc8bfb0ff252f7841cb Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 4 Mar 2022 13:04:55 -0600 Subject: [PATCH 0004/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index cfb6868fe..bf9975a8d 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_44_00` | Weekly release | [Release Notes](ReleaseNotes094400.html) |`v09_43_00` | Weekly release | [Release Notes](ReleaseNotes094300.html) |`v09_42_04` | Weekly release | [Release Notes](ReleaseNotes094204.html) |`v09_42_03` | Weekly release | [Release Notes](ReleaseNotes094203.html) From cf87a4f4f96fdf0ac37785940b8cb1c98964eabf Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Sat, 5 Mar 2022 10:49:10 +0100 Subject: [PATCH 0005/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 33f061fae..aa8fe583d 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -64,6 +64,18 @@ ICARUS MC | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| Cosmics, Lifetime 3.5 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_reco2_commonruns | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_calibtuples_commonruns | +| Cosmics, Lifetime 6 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_reco2_commonruns | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_calibtuples_commonruns | +| Cosmics, Lifetime 3.5 ms, No Diffusion | MCP2021C | v09_37_01_03p01 | 20925 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoDiffusion_v09_37_01_03p01_reco2_commonruns | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoDiffusion_v09_37_01_03p01_calibtuples_commonruns | +| Cosmics, Lifetime 6 ms, No Diffusion | MCP2021C | v09_37_01_03p01 | 20750 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoDiffusion_v09_37_01_03p01_reco2_commonruns | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoDiffusion_v09_37_01_03p01_calibtuples_commonruns | +| Cosmics, Lifetime 3.5 ms, No SCE No Diffusion | MCP2021C | v09_37_01_03p01 | 21125 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_NoDiffusion_v09_37_01_03p01_reco2_commonruns | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_NoDiffusion_v09_37_01_03p01_calibtuples_commonruns | +| Cosmics, Lifetime 6 ms, No SCE No Diffusion | MCP2021C | v09_37_01_03p01 | 20600 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_NoDiffusion_v09_37_01_03p01_reco2_commonruns | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoSCE_NoDiffusion_v09_37_01_03p01_calibtuples_commonruns | | Cosmics, Lifetime 1 ms | MCP2021C | v09_37_01_03p01 | 20200 | reco2 | IcarusProd_PuritySample_eLifetime1ms_v09_37_01_03p01_reco2_commonruns | | --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime1ms_v09_37_01_03p01_calibtuples_commonruns | | Cosmics, Lifetime 3.5 ms | MCP2021C | v09_37_01_03p01 | 20200 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_v09_37_01_03p01_reco2_commonruns | From 9cde40f2c73251712e6c71d79e94b894e01a52eb Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 7 Mar 2022 12:37:48 +0000 Subject: [PATCH 0006/1437] update instructions on CI trigger and validation --- AnalysisInfrastructure/how-to-develop.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/AnalysisInfrastructure/how-to-develop.md b/AnalysisInfrastructure/how-to-develop.md index 15c9c3d0c..a690aa029 100644 --- a/AnalysisInfrastructure/how-to-develop.md +++ b/AnalysisInfrastructure/how-to-develop.md @@ -138,7 +138,7 @@ for example, [coding guidelines](../sbn/codingconv/CodingConventions.md) are enf There are two things you should do first: 1. Test building your code by: `cd $MRB_BUILDDIR; mrbsetenv; mrb i -j16`, if it doesn't build it isn't ready to merge into a release -2. Validate that your change is propogating, run some jobs and verify the change you made is there +2. Validate that your change is propogating. Follow the instructions in [CI and Validation](https://sbnsoftware.github.io/sbn/sbnci_wiki/sbnci_main). For #2 it would be great to post these checks to the DocDB so that others can see what you did! @@ -146,7 +146,7 @@ For #2 it would be great to post these checks to the DocDB so that others can se Great! Now we know your code builds and you have validated it now we can move to merging it into our release. -1. Open a Pull Request when your code is ready. +1. Open a Pull Request (PR) when your code is ready. The next step is to alert the [Release-Management Team](https://sbnsoftware.github.io/AnalysisInfrastructure/index) that you would like your code to be reviewed for inclusion into a release. We do this via a [pull-request](https://www.atlassian.com/git/tutorials/making-a-pull-request). There are two ways to do this: @@ -155,14 +155,20 @@ a. use the github website: `https://github.com/SBNSoftware//tree/featur b. use command line [hub](https://hub.github.com/) extension. You can track your pull-requests here: `https://github.com/SBNSoftware//pulls` -Add as much information as possible to the comments: description, validation [Validation standard plot] slides, priority, contact details … +Add as much information as possible to the comments: description, validation slides dodDB entry [Validation plots], priority, contact details … 2. Assign a reviewer. working group colleague, someone familiar with your code, reviewers [list](suggested-reviewers and their git-hub handles) … -3. Address request, changes or comments. +3. Address request, changes or comments to get the reviewers approval. -4. Trigger the integrated (for e20/c7:prof) CI test with the comment `trigger build` in your GitHub PR . -If successful your code will be merged into the stack. Wait for nightly build (e20/c7:debug) outputs (Dashboard or Slack). +4. Trigger the integrated (for e20/c7:prof) CI test with the comment `trigger build` in your GitHub PR. If the PR is dependent on other PRs, the CI test should be performed once for all with `trigger build org/repo#num,org2/repo2#num2` (as for an example `trigger build LArSoft/larevt#11,SBNSoftware/sbndcode#108`) in a GitHub comment. Look at the checks comments (CI Dashboard) to find information about the possible cause of failures and try to solve it. +Wait until the nightly build for e20/c7:debug CI test and check the outputs in CI Dashboard or Slack (#sbn_ci_alerts). +If successful your code will be ready to be merged into the stack. + The succes should be posted in the dependent PRs as well to inform about the readiness. -5. Your code is ready to be released. Once approved this will be merged into our next release! + + + + +Your code is ready to be released and will be merged into our next release! From eb4b757019edded2d03f3feeafc63ef4e1ed9eab Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 7 Mar 2022 12:44:56 +0000 Subject: [PATCH 0007/1437] update validation link --- AnalysisInfrastructure/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/index.md b/AnalysisInfrastructure/index.md index e379921cb..f3c7eb7fe 100644 --- a/AnalysisInfrastructure/index.md +++ b/AnalysisInfrastructure/index.md @@ -59,7 +59,7 @@ Meetings: Thursdays, 11:00 CT -### [Validation Framework](validation.md) +### [Validation Framework](https://sbnsoftware.github.io/sbn/sbnci_wiki/sbnci_main) Conveners: [Chris Hilgenberg](mailto:) From 4bb684353c1d6aaaeb22894107fc72ee2fb1dd30 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 8 Mar 2022 15:06:09 +0000 Subject: [PATCH 0008/1437] Create rm --- AnalysisInfrastructure/rm | 1 + 1 file changed, 1 insertion(+) create mode 100644 AnalysisInfrastructure/rm diff --git a/AnalysisInfrastructure/rm b/AnalysisInfrastructure/rm new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/AnalysisInfrastructure/rm @@ -0,0 +1 @@ + From 2365f0993ff74593c0b697c3651ab6b97e97be3f Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 8 Mar 2022 15:22:39 +0000 Subject: [PATCH 0009/1437] Delete rm --- AnalysisInfrastructure/rm | 1 - 1 file changed, 1 deletion(-) delete mode 100644 AnalysisInfrastructure/rm diff --git a/AnalysisInfrastructure/rm b/AnalysisInfrastructure/rm deleted file mode 100644 index 8b1378917..000000000 --- a/AnalysisInfrastructure/rm +++ /dev/null @@ -1 +0,0 @@ - From e6ee916695ef72335abb6686e82f6e13675fd7bb Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 8 Mar 2022 15:23:03 +0000 Subject: [PATCH 0010/1437] Create rm_tools.md --- AnalysisInfrastructure/rm/rm_tools.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 AnalysisInfrastructure/rm/rm_tools.md diff --git a/AnalysisInfrastructure/rm/rm_tools.md b/AnalysisInfrastructure/rm/rm_tools.md new file mode 100644 index 000000000..c2163a42b --- /dev/null +++ b/AnalysisInfrastructure/rm/rm_tools.md @@ -0,0 +1,10 @@ +##SBN Release Management tools + +Helper scripts are kept as part of the sbnbuild repo(https://github.com/SBNSoftware/sbnbuild) +* `SBN/setup_build.sh` sets up local mrb area for testing a sbncode / SBN stack release build. Takes larsoft version number and qualifiers as argument. +* `SBN/setup_build_sbana.sh` sets up a local mrb area for testing a sbnana release build. Takes sbnana version number to use and qualifiers as argument. +* `SBN/copyToSciSoft_sbn.sh` pulls down from jenkins and pushes up to SciSoft the output of a successful release build for SBN software. +* `SBN/copyToSciSoft_sbnana.sh` pulls down from jenkins and pushes up to SciSoft the output of a successful release build for sbnana package. +* `ScisoftScripts` folder has copies of scripts from https://scisoft.fnal.gov/scisoft/bundles/tools/. + +Note SciSoft script get updated from time to time. From 193f70b3cb81349703452c0ba05f0a2ae02a8a6a Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Tue, 8 Mar 2022 16:26:56 +0100 Subject: [PATCH 0011/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index aa8fe583d..72c30c74e 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -87,35 +87,35 @@ ICARUS MC | NuMI nue + cosmics | MCP2021C | v09_37_01_02p01 | 13326 | reco1 | Official_IcarusProd2021C_NUMI_Nue_Cosmics_v09_37_01_02p01_reco1 | | --- | --- | --- | 13326 | reco2 | Official_IcarusProd2021C_NUMI_Nue_Cosmics_v09_37_01_02p01_reco2 | | --- | --- | --- | --- | calib ntuples | Official_IcarusProd2021C_NUMI_Nue_Cosmics_v09_37_01_02p01_CalibTuples | -| --- | --- | v09_37_01_03p01 | 13326 | caf |Official_IcarusProd2021C_NUMI_Nue_Cosmics_v09_37_01_02p01_caf | +| --- | --- | v09_37_01_03p01 | 13326 | caf |Official_IcarusProd2021C_NUMI_Nue_Cosmics_v09_37_01_03p01_caf | | NuMI nu + cosmic | MCP2021C | v09_37_01_02p01 | 48487 | reco1 | Official_IcarusProd2021C_NUMI_Nu_Cosmics_v09_37_01_02p01_reco1 | | --- | --- | --- | 48459 | reco2 | Official_IcarusProd2021C_NUMI_Nu_Cosmics_v09_37_01_02p01_reco2 | | --- | --- | --- | --- | calib ntuples | Official_IcarusProd2021C_NUMI_Nu_Cosmics_v09_37_01_02p01_CalibTuples | -| --- | --- | v09_37_01_03p01 | 48459 | caf | Official_IcarusProd2021C_NUMI_Nu_Cosmics_v09_37_01_02p01_caf | +| --- | --- | v09_37_01_03p01 | 48459 | caf | Official_IcarusProd2021C_NUMI_Nu_Cosmics_v09_37_01_03p01_caf | | NUMI full osc | MCP2021C | v09_37_01_02p01 | 16565 | reco1 | Official_IcarusProd2021C_NUMI_FullOsc_Cosmics_v09_37_01_02p01_reco1 | | --- | --- | --- | 16564 | reco2 | Official_IcarusProd2021C_NUMI_FullOsc_Cosmics_v09_37_01_02p01_reco2 | | --- | --- | --- | --- | calib ntuples | Official_IcarusProd2021C_NUMI_FullOsc_Cosmics_v09_37_01_02p01_CalibTuples | -| --- | --- | v09_37_01_03p01 | 16564 | caf | Official_IcarusProd2021C_NUMI_FullOsc_Cosmics_v09_37_01_02p01_caf | +| --- | --- | v09_37_01_03p01 | 16564 | caf | Official_IcarusProd2021C_NUMI_FullOsc_Cosmics_v09_37_01_03p01_caf | | NUMI Intime Cosmics | MCP2021C | v09_37_01_02p01 | 350794 | reco1 | Official_IcarusProd2021C_NUMI_in-time_Cosmics_v09_37_01_02p01_reco1 | | --- | --- | --- | 350554 | reco2 | Official_IcarusProd2021C_NUMI_in-time_Cosmics_v09_37_01_02p01_reco2 | | --- | --- | --- | --- | calib ntuples | Official_IcarusProd2021C_NUMI_in-time_Cosmics_v09_37_01_02p01_CalibTuples | -| --- | --- | v09_37_01_03p01 | 350554 | caf | Official_IcarusProd2021C_NUMI_in-time_Cosmics_v09_37_01_02p01_caf | +| --- | --- | v09_37_01_03p01 | 350554 | caf | Official_IcarusProd2021C_NUMI_in-time_Cosmics_v09_37_01_03p01_caf | | BNB nue + cosmic | MCP2021C | v09_37_01_02p01 | 2549 | reco1 | Official_IcarusProd2021C_BNB_Nue_Cosmics_v09_37_01_02p01_reco1 | | --- | --- | --- | 2549 | reco2 | Official_IcarusProd2021C_BNB_Nue_Cosmics_v09_37_01_02p01_reco2 | | --- | --- | --- | --- | calib ntuples | Official_IcarusProd2021C_BNB_Nue_Cosmics_v09_37_01_02p01_CalibTuples | -| --- | --- | v09_37_01_03p01 | 2549 | caf | Official_IcarusProd2021C_BNB_Nue_Cosmics_v09_37_01_02p01_caf | +| --- | --- | v09_37_01_03p01 | 2549 | caf | Official_IcarusProd2021C_BNB_Nue_Cosmics_v09_37_01_03p01_caf | | BNB nu + cosmics |MCP2021C | v09_37_01_02p01 | 34800 | reco1 | Official_IcarusProd2021C_BNB_Nu_Cosmics_v09_37_01_02p01_reco1 | | --- | --- | --- | 34770 | reco2 | Official_IcarusProd2021C_BNB_Nu_Cosmics_v09_37_01_02p01_reco2 | | --- | --- | --- | --- | calib ntuples | Official_IcarusProd2021C_BNB_Nu_Cosmics_v09_37_01_02p01_CalibTuples | -| --- | --- | v09_37_01_03p01 | 34770 | caf | Official_IcarusProd2021C_BNB_Nu_Cosmics_v09_37_01_02p01_caf | +| --- | --- | v09_37_01_03p01 | 34770 | caf | Official_IcarusProd2021C_BNB_Nu_Cosmics_v09_37_01_03p01_caf | | BNB full osc | MCP2021C | v09_37_01_02p01 | 2146 | reco1 | Official_IcarusProd2021C_BNB_FullOsc_Cosmics_v09_37_01_02p01_reco1 | | --- | --- | --- | 2129 | reco2 | Official_IcarusProd2021C_BNB_FullOsc_Cosmics_v09_37_01_02p01_reco2 | | --- | --- | --- | --- | calib ntuples | Official_IcarusProd2021C_BNB_FullOsc_Cosmics_v09_37_01_02p01_CalibTuples | -| --- | --- | v09_37_01_03p01 | 2129 | caf | Official_IcarusProd2021C_BNB_FullOsc_Cosmics_v09_37_01_02p01_caf | +| --- | --- | v09_37_01_03p01 | 2129 | caf | Official_IcarusProd2021C_BNB_FullOsc_Cosmics_v09_37_01_03p01_caf | | BNB Intime Cosmics | MCP2021C | v09_37_01_02p01 | 339541 | reco1 | Official_IcarusProd2021C_BNB_in-time_Cosmics_v09_37_01_02p01_reco1 | | --- | --- | --- | 339305 | reco2 | Official_IcarusProd2021C_BNB_in-time_Cosmics_v09_37_01_02p01_reco2 | | --- | --- | --- | --- | calib ntuples | Official_IcarusProd2021C_BNB_in-time_Cosmics_v09_37_01_02p01_CalibTuples | -| --- | --- | v09_37_01_03p01 | 339257 | caf | Official_IcarusProd2021C_BNB_in-time_Cosmics_v09_37_01_02p01_caf | +| --- | --- | v09_37_01_03p01 | 339257 | caf | Official_IcarusProd2021C_BNB_in-time_Cosmics_v09_37_01_03p01_caf | | NuMI nue + cosmics | MCP2021B | v09_28_01_01_01 | 10020 | reco2 | IcarusProd2021B_NuMI_Nue_Cosmics_v09_28_01_01_01_reco2 | | --- | --- | --- | --- | calib ntuples | IcarusProd2021B_NuMI_Nue_Cosmics_v09_28_01_01_01_CalibTuples | | --- | --- | --- | 10020 | caf |IcarusProd2021B_NuMI_Nue_Cosmics_v09_28_01_01_01_caf | From 7b3ee42bf94389143077627ec1172e55c23cc99f Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 8 Mar 2022 15:42:06 +0000 Subject: [PATCH 0012/1437] Update and rename AnalysisInfrastructure/rm.md to AnalysisInfrastructure/rm/rm_main.md --- .../{rm.md => rm/rm_main.md} | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) rename AnalysisInfrastructure/{rm.md => rm/rm_main.md} (82%) diff --git a/AnalysisInfrastructure/rm.md b/AnalysisInfrastructure/rm/rm_main.md similarity index 82% rename from AnalysisInfrastructure/rm.md rename to AnalysisInfrastructure/rm/rm_main.md index 8ae0f9283..fe2efd6f4 100644 --- a/AnalysisInfrastructure/rm.md +++ b/AnalysisInfrastructure/rm/rm_main.md @@ -1,18 +1,22 @@ # Release Management -## SBN Build instructions for an SBN software stack build +Charge: +## Release management (pre)requisites + + +## SBN Release instructions for an SBN software stack build, release and distribution. + +Different release instructions for: + * sbncode and partners + * sbnana + * sbndata + * Production release peculiarities -Helper scripts are kept as part of the sbnbuild repo(https://github.com/SBNSoftware/sbnbuild) -* `SBN/setup_build.sh` sets up local mrb area for testing a sbncode / SBN stack release build. Takes larsoft version number and qualifiers as argument. -* `SBN/setup_build_sbana.sh` sets up a local mrb area for testing a sbnana release build. Takes sbnana version number to use and qualifiers as argument. -* `SBN/copyToSciSoft_sbn.sh` pulls down from jenkins and pushes up to SciSoft the output of a successful release build for SBN software. -* `SBN/copyToSciSoft_sbnana.sh` pulls down from jenkins and pushes up to SciSoft the output of a successful release build for sbnana package. -* `ScisoftScripts` folder has copies of scripts from https://scisoft.fnal.gov/scisoft/bundles/tools/. ### Prepare release and test locally. -0. Login to one of the build nodes, move to a working area, and clone the sbnbuild repo. +0. Login to one of the build nodes, move to a working area, and clone the sbnbuild repo (where [release manegement tools](rm_tools.md) live. 1. Move into `sbnbuild` and do `source SBN/setup_build.sh ` where the version in the larsoft version, and the quals are a choice of quals for testing (e.g. `c7:debug`). 2. Do `mrb g ` for the repositories that need to be updated. (Check release notes or use `ups active | grep lardataobj` to see if `lardataobj` has changed, and if you will need to change `sbnobj` or not). 3. For each repo, do `cd srcs/` and then `git flow init`. Use `main` as the 'production' branch, but use defaults for all the rest of the prompts. From 565b52310d22861663d42a4d5649ddde9a687489 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 8 Mar 2022 15:43:09 +0000 Subject: [PATCH 0013/1437] Rename AnalysisInfrastructure/rm/rm_main.md to AnalysisInfrastructure/ReleaseManagement/rm_main.md --- AnalysisInfrastructure/{rm => ReleaseManagement}/rm_main.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename AnalysisInfrastructure/{rm => ReleaseManagement}/rm_main.md (100%) diff --git a/AnalysisInfrastructure/rm/rm_main.md b/AnalysisInfrastructure/ReleaseManagement/rm_main.md similarity index 100% rename from AnalysisInfrastructure/rm/rm_main.md rename to AnalysisInfrastructure/ReleaseManagement/rm_main.md From 9bd7a25ea91bd9350deaf1420742f2b6f451f008 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 8 Mar 2022 15:44:22 +0000 Subject: [PATCH 0014/1437] Rename AnalysisInfrastructure/rm/rm_tools.md to AnalysisInfrastructure/ReleaseManagement/rm_tools.md --- AnalysisInfrastructure/{rm => ReleaseManagement}/rm_tools.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename AnalysisInfrastructure/{rm => ReleaseManagement}/rm_tools.md (100%) diff --git a/AnalysisInfrastructure/rm/rm_tools.md b/AnalysisInfrastructure/ReleaseManagement/rm_tools.md similarity index 100% rename from AnalysisInfrastructure/rm/rm_tools.md rename to AnalysisInfrastructure/ReleaseManagement/rm_tools.md From 3878ad4455f05109f2b3f948dd81ee9228beb657 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 9 Mar 2022 14:27:34 +0000 Subject: [PATCH 0015/1437] update RM link --- AnalysisInfrastructure/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/index.md b/AnalysisInfrastructure/index.md index f3c7eb7fe..977814c64 100644 --- a/AnalysisInfrastructure/index.md +++ b/AnalysisInfrastructure/index.md @@ -14,7 +14,7 @@ We'll use this wiki page for tracking group goals, progress, and release informa Each of these sgroups are charged with defining and implement common SBN-wide solutions. Please find an organization chart [here](sbnai_orgchart.md). -### [Software Release Management](rm.md) +### [Software Release Management](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/rm_main) [List of open PRs](https://github.com/pulls?q=is%3Aopen+is%3Apr+org%3ASBNSoftware+archived%3Afalse) ([and no assigned project](https://github.com/pulls?q=is%3Aopen+is%3Apr+org%3ASBNSoftware+archived%3Afalse+no%3Aproject)) From 73ba220316dc7ea0b9401e4a512d58e0bb2ef670 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 9 Mar 2022 14:33:42 +0000 Subject: [PATCH 0016/1437] add permissions requirements and layout --- .../ReleaseManagement/rm_main.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_main.md b/AnalysisInfrastructure/ReleaseManagement/rm_main.md index fe2efd6f4..b27004016 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_main.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_main.md @@ -1,8 +1,26 @@ +--- +layout: page +title: Release Management +toc: true +--- + # Release Management Charge: +Define the methodology for integrating new code into the software stack, managing its integration, and overseeing the building and release of this code in coordination with SBND and ICARUS release managers. + ## Release management (pre)requisites +Multiple permissions are needed to perform all of the actions involved +in release management, these include: + +- Access to cvmfssbn account on oasiscfs.fnal.gov +- Access to sbn account on GPVMs +- Account on the Jenkins build server and a [CILogon + certificate](Setting_up_access_with_CILogon_certificate.html) + loaded in your browser (Will need [Fermilab + VPN](VPN.html) running if off site) +- Access to `scisoftgpvm01.fnal.gov` ## SBN Release instructions for an SBN software stack build, release and distribution. From 1db3757e3deb86987ba4307385cbea0657587bd7 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 9 Mar 2022 14:47:06 +0000 Subject: [PATCH 0017/1437] Create rm_instructions.md --- .../ReleaseManagement/rm_instructions.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/rm_instructions.md diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md b/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md new file mode 100644 index 000000000..368676e08 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md @@ -0,0 +1,79 @@ +--- +layout: page +title: Release Management Instructions +toc: true +--- + + +## Release management (pre)requisites +Multiple permissions are needed to perform all of the actions involved +in release management, these include: + +- Access to cvmfssbn account on oasiscfs.fnal.gov +- Access to sbn account on GPVMs +- Account on the Jenkins build server and a [CILogon + certificate](Setting_up_access_with_CILogon_certificate.html) + loaded in your browser (Will need [Fermilab + VPN](VPN.html) running if off site) +- Access to `scisoftgpvm01.fnal.gov` + + +## SBN Release instructions for an SBN software stack build, release and distribution. + +Different release instructions for: + * sbncode and partners + * sbnana + * sbndata + * Production release peculiarities + + +### Prepare release and test locally. + +0. Login to one of the build nodes, move to a working area, and clone the sbnbuild repo (where [release manegement tools](rm_tools.md) live. +1. Move into `sbnbuild` and do `source SBN/setup_build.sh ` where the version in the larsoft version, and the quals are a choice of quals for testing (e.g. `c7:debug`). +2. Do `mrb g ` for the repositories that need to be updated. (Check release notes or use `ups active | grep lardataobj` to see if `lardataobj` has changed, and if you will need to change `sbnobj` or not). +3. For each repo, do `cd srcs/` and then `git flow init`. Use `main` as the 'production' branch, but use defaults for all the rest of the prompts. +4. In each repo, do `git flow release start vXX_YY_ZZ` where `vXX_YY_ZZ` is the new version number for this package. This will create a `release/vXX_YY_ZZ` in this repo based on `develop`. +5. Merge in any pull requests that were not already on develop. (E.g. `git merge origin/feature/username_MyImportantPR`.) Resolve any conflicts as needed. +6. Edit `CMakeLists.txt` to have the new version number (at `project(sbncode VERSION `) and update versions of any dependencies in `ups/product_deps` (middle of file) as needed. Check LArSoft release notes and search for depencecies changes. +7. Commit all changes, and push up to the origin: `git commit -a -m 'my message'; git push origin release/vXX_YY_ZZ` +8. Do this for all needed repos. +9. Test locally: `cd $MRB_BUILDDIR; mrbsetenv; mrb i -j32; mrbslp`. Resolve any conflicts, and be sure to commit and push updates. + +### Run build on Jenkins. +1. Login to buildmaster.fnal.gov (need to be on VNC and need to have certificate added), and go to the "sbn" tab. +2. Click on "sbn-release-build" (or just go here: https://buildmaster.fnal.gov/buildmaster/view/sbn/job/sbn-release-build/) +3. Click on "Build with Parameters" on the left, and modify the parameters as needed: + - "SBN_VERSION" should be the version number of `sbncode` you are building. + - "SBN", "SBNOBJ", "SBNANAOBJ", and "SBNDAQ_ARTDAQ_CORE" are the tags/branches/commits within those repositories that you want to build. If using the above this would be the appropriate `release/vXX_YY_ZZ` branch for that repository. + - "SQUAL" is the matching s-qualifier for larsoft: see the Larsoft release notes (it doesn't change soo often). +4. Click the "Build" button, and make sure all build configs are successful. If one or more is unsuccessful, investigate by looking at the console output via jenkins webpage. Make updates in the code as necessary (in your local area), and commit/push them back up to the repo. + +### Finalize the tag. +1. In your testing area, in each repo do `git flow release finish`. Make sure to include a message for the tag. +2. Do `git push origin main develop --tags` to push up the changes to main, develop, and the new tag. + +### Distribute software. +#### SciSoft: +1. Create and empty directory (better in `data/` ) for each new release version for storing the trabals and manifests. +2. Fetch results of Jenkins from both e20 and c7 builds using + + perl copyFromJenkins -q e20 -q c7 sbn-release-build + +from `ScisoftScripts` folder. This will fetch the build artifacts (tarballs and manifests, one per flavour). + +3. Upload all files to scisoft + + perl copyToSciSoft * + +(The script decides where to copy files based on name and type, the naming conventions from Jenkins should not be changed as they are understood by the script) + +#### CVMFS: +1. Login to CVMFS: `ssh cvmfssbn@oasiscfs.fnal.gov` +2. Start a server transaction: `cvmfs_server transaction sbn.opensciencegrid.org` +3. Install the new software into cvmfs: `~/sbnbuild/CVMFS/install_on_cvmfs.sh sbn-XX.YY.ZZ` where `XX.YY.ZZ` is the sbncode version number (note dots instead of underscores!) +4. Publish the changes with a message and a tag: `cvmfs_server publish -m "Published sbn XX.YY.ZZ" -a XX.YY.ZZ sbn.opensciencegrid.org` + +### Notify and distribute Release notes: +Send/post release notes (currently email/slack with changes) and let SBND and ICARUS release distributors know. + From 99818b6ec977167d056ff363be406b9fb642f58f Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 9 Mar 2022 14:47:56 +0000 Subject: [PATCH 0018/1437] Update rm_tools.md --- AnalysisInfrastructure/ReleaseManagement/rm_tools.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_tools.md b/AnalysisInfrastructure/ReleaseManagement/rm_tools.md index c2163a42b..75e5a1ed4 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_tools.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_tools.md @@ -1,3 +1,10 @@ +--- +layout: page +title: Release Management tools +toc: true +--- + + ##SBN Release Management tools Helper scripts are kept as part of the sbnbuild repo(https://github.com/SBNSoftware/sbnbuild) From 4f41511d2a8b88afbb660736dad7ab82d8c024dc Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 9 Mar 2022 15:47:38 +0000 Subject: [PATCH 0019/1437] Update rm_main.md --- .../ReleaseManagement/rm_main.md | 82 ++++--------------- 1 file changed, 16 insertions(+), 66 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_main.md b/AnalysisInfrastructure/ReleaseManagement/rm_main.md index b27004016..5fd1cc50d 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_main.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_main.md @@ -4,81 +4,31 @@ title: Release Management toc: true --- -# Release Management +# Software Release Management Charge: Define the methodology for integrating new code into the software stack, managing its integration, and overseeing the building and release of this code in coordination with SBND and ICARUS release managers. -## Release management (pre)requisites -Multiple permissions are needed to perform all of the actions involved -in release management, these include: +# Release code convention +![image](https://user-images.githubusercontent.com/8134042/157476481-912159d9-9f92-4e82-b772-a2f159f52452.png) -- Access to cvmfssbn account on oasiscfs.fnal.gov -- Access to sbn account on GPVMs -- Account on the Jenkins build server and a [CILogon - certificate](Setting_up_access_with_CILogon_certificate.html) - loaded in your browser (Will need [Fermilab - VPN](VPN.html) running if off site) -- Access to `scisoftgpvm01.fnal.gov` +# Release types -## SBN Release instructions for an SBN software stack build, release and distribution. +* Weekly release: Meant to maintain the work ongoing. Snapshot of the more recent code developments. Cut from the develop branch. +* Production release: Frozen code for specific goals production. + * Beta release (i.e. SBN2021C - Goal: “Beta release” for the simulation, high-level reconstruction and calibration.) cut from develop. + * Full production release (i.e. SBN2022A - Goal: Produce the samples needed for Summer 2022 conferences.) cut from the previous beta release branch. +* Patch releases: As needed to maintain the previous ones. -Different release instructions for: - * sbncode and partners - * sbnana - * sbndata - * Production release peculiarities +# Continuous Integration and validation of the software stack +All PRs for all flavours are CI tested (LArSoft, SBND, ICARUS): +* e20: prof c7:prof by GitHub trigger comment. +* e20:debug c7:debug nightly. -### Prepare release and test locally. - -0. Login to one of the build nodes, move to a working area, and clone the sbnbuild repo (where [release manegement tools](rm_tools.md) live. -1. Move into `sbnbuild` and do `source SBN/setup_build.sh ` where the version in the larsoft version, and the quals are a choice of quals for testing (e.g. `c7:debug`). -2. Do `mrb g ` for the repositories that need to be updated. (Check release notes or use `ups active | grep lardataobj` to see if `lardataobj` has changed, and if you will need to change `sbnobj` or not). -3. For each repo, do `cd srcs/` and then `git flow init`. Use `main` as the 'production' branch, but use defaults for all the rest of the prompts. -4. In each repo, do `git flow release start vXX_YY_ZZ` where `vXX_YY_ZZ` is the new version number for this package. This will create a `release/vXX_YY_ZZ` in this repo based on `develop`. -5. Merge in any pull requests that were not already on develop. (E.g. `git merge origin/feature/username_MyImportantPR`.) Resolve any conflicts as needed. -6. Edit `CMakeLists.txt` to have the new version number (at `project(sbncode VERSION `) and update versions of any dependencies in `ups/product_deps` (middle of file) as needed. Check LArSoft release notes and search for depencecies changes. -7. Commit all changes, and push up to the origin: `git commit -a -m 'my message'; git push origin release/vXX_YY_ZZ` -8. Do this for all needed repos. -9. Test locally: `cd $MRB_BUILDDIR; mrbsetenv; mrb i -j32; mrbslp`. Resolve any conflicts, and be sure to commit and push updates. - -### Run build on Jenkins. -1. Login to buildmaster.fnal.gov (need to be on VNC and need to have certificate added), and go to the "sbn" tab. -2. Click on "sbn-release-build" (or just go here: https://buildmaster.fnal.gov/buildmaster/view/sbn/job/sbn-release-build/) -3. Click on "Build with Parameters" on the left, and modify the parameters as needed: - - "SBN_VERSION" should be the version number of `sbncode` you are building. - - "SBN", "SBNOBJ", "SBNANAOBJ", and "SBNDAQ_ARTDAQ_CORE" are the tags/branches/commits within those repositories that you want to build. If using the above this would be the appropriate `release/vXX_YY_ZZ` branch for that repository. - - "SQUAL" is the matching s-qualifier for larsoft: see the Larsoft release notes (it doesn't change soo often). -4. Click the "Build" button, and make sure all build configs are successful. If one or more is unsuccessful, investigate by looking at the console output via jenkins webpage. Make updates in the code as necessary (in your local area), and commit/push them back up to the repo. - -### Finalize the tag. -1. In your testing area, in each repo do `git flow release finish`. Make sure to include a message for the tag. -2. Do `git push origin main develop --tags` to push up the changes to main, develop, and the new tag. - -### Distribute software. -#### SciSoft: -1. Create and empty directory (better in `data/` ) for each new release version for storing the trabals and manifests. -2. Fetch results of Jenkins from both e20 and c7 builds using - - perl copyFromJenkins -q e20 -q c7 sbn-release-build - -from `ScisoftScripts` folder. This will fetch the build artifacts (tarballs and manifests, one per flavour). - -3. Upload all files to scisoft - - perl copyToSciSoft * - -(The script decides where to copy files based on name and type, the naming conventions from Jenkins should not be changed as they are understood by the script) - -#### CVMFS: -1. Login to CVMFS: `ssh cvmfssbn@oasiscfs.fnal.gov` -2. Start a server transaction: `cvmfs_server transaction sbn.opensciencegrid.org` -3. Install the new software into cvmfs: `~/sbnbuild/CVMFS/install_on_cvmfs.sh sbn-XX.YY.ZZ` where `XX.YY.ZZ` is the sbncode version number (note dots instead of underscores!) -4. Publish the changes with a message and a tag: `cvmfs_server publish -m "Published sbn XX.YY.ZZ" -a XX.YY.ZZ sbn.opensciencegrid.org` - -### Notify and distribute Release notes: -Send/post release notes (currently email/slack with changes) and let SBND and ICARUS release distributors know. +And full stack tested before released (Jenkins). +# Release management for managers +[Release management instructions](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/rm_instructions) From 95d468e6d4cbde110ba7e24b6b0f55e0095ae417 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 9 Mar 2022 16:02:25 +0000 Subject: [PATCH 0020/1437] Add information and structure to the RM main page --- AnalysisInfrastructure/ReleaseManagement/rm_main.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_main.md b/AnalysisInfrastructure/ReleaseManagement/rm_main.md index 5fd1cc50d..445bd3769 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_main.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_main.md @@ -6,10 +6,20 @@ toc: true # Software Release Management -Charge: +### Charge: Define the methodology for integrating new code into the software stack, managing its integration, and overseeing the building and release of this code in coordination with SBND and ICARUS release managers. +### Model: + +A Release model based on reviewed Pull Request code development. See [how to develop](https://sbnsoftware.github.io/AnalysisInfrastructure/how-to-develop) for detailed instructions. + +### Software managed: +* sbncode, sbnobj, sbnanaobj +* sbnana +* sbndata +* sbndaq_artdaq_core + # Release code convention ![image](https://user-images.githubusercontent.com/8134042/157476481-912159d9-9f92-4e82-b772-a2f159f52452.png) From 8c966d2c319240bc43b93ab537baaada41aa6f10 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 9 Mar 2022 16:38:40 +0000 Subject: [PATCH 0021/1437] create draft larsoft PRs instructions --- .../ReleaseManagement/larsoft_pr.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/larsoft_pr.md diff --git a/AnalysisInfrastructure/ReleaseManagement/larsoft_pr.md b/AnalysisInfrastructure/ReleaseManagement/larsoft_pr.md new file mode 100644 index 000000000..96d3e430b --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/larsoft_pr.md @@ -0,0 +1,42 @@ +--- +layout: page +title: Submitting LArSoft PRs via SBNSoftware +toc: true +--- + + + +# Submitting LArSoft PRs via SBNSoftware + +We have forks of all LArSoft repos in SBNSoftware Github organization + +Automated updates of the develop branch, but nothing beyond that + +Allows coordination on branches for LArSoft, and allows PRs to be submitted from these repos rather than user-specific forks + + +To add this as a new ‘remote’ (using larsim as example): + +* Create development area like usual +* Pull down lar repo: mrb g larsim +* Move to it: cd $MRB_TOP/srcs/larsim +* Add SBNSoftware remote as ‘sbn’: +git remote add sbn git@github.com:SBNSoftware/larsim.git +git remote add sbn https://github.com/SBNSoftware/larsim.git +if using tokens + + +Remember: updates targeted for patch releases and 2022A release, we will want to make based on LArSoft v09_37_01 (or later patches…) + +git checkout -b feature/_ LARSOFT_SUITE_v09_37_01 + + +Make changes and commits as usual, but when pushing commits, push to the ‘sbn’ remote: + +git push sbn feature/_ + + +When ready, can issue the PR to LArSoft pointing to this fork/branch: + +But please coordinate that with release managers/conveners, especially if a patch release!!! + From bf138557d9b82579caccdfbbf934655247f9108c Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 9 Mar 2022 16:41:11 +0000 Subject: [PATCH 0022/1437] add info on LArSoft PRs form SBNSoftware org --- AnalysisInfrastructure/how-to-develop.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/how-to-develop.md b/AnalysisInfrastructure/how-to-develop.md index a690aa029..db000c6d6 100644 --- a/AnalysisInfrastructure/how-to-develop.md +++ b/AnalysisInfrastructure/how-to-develop.md @@ -142,11 +142,12 @@ There are two things you should do first: For #2 it would be great to post these checks to the DocDB so that others can see what you did! -## Submitting a Pull-Request +## Submitting a Pull-Request Great! Now we know your code builds and you have validated it now we can move to merging it into our release. 1. Open a Pull Request (PR) when your code is ready. +Check [here](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/larsoft_pr) if your development its at LArSoft level. The next step is to alert the [Release-Management Team](https://sbnsoftware.github.io/AnalysisInfrastructure/index) that you would like your code to be reviewed for inclusion into a release. We do this via a [pull-request](https://www.atlassian.com/git/tutorials/making-a-pull-request). There are two ways to do this: From ef5e7853252b86036b01d96c70355a3ef811fa36 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Thu, 10 Mar 2022 11:28:38 +0100 Subject: [PATCH 0023/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 72c30c74e..3a15e954d 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -64,18 +64,18 @@ ICARUS MC | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| Cosmics, Lifetime 3.5 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_reco2_commonruns | -| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_calibtuples_commonruns | -| Cosmics, Lifetime 6 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_reco2_commonruns | -| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_calibtuples_commonruns | -| Cosmics, Lifetime 3.5 ms, No Diffusion | MCP2021C | v09_37_01_03p01 | 20925 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoDiffusion_v09_37_01_03p01_reco2_commonruns | -| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoDiffusion_v09_37_01_03p01_calibtuples_commonruns | -| Cosmics, Lifetime 6 ms, No Diffusion | MCP2021C | v09_37_01_03p01 | 20750 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoDiffusion_v09_37_01_03p01_reco2_commonruns | -| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoDiffusion_v09_37_01_03p01_calibtuples_commonruns | -| Cosmics, Lifetime 3.5 ms, No SCE No Diffusion | MCP2021C | v09_37_01_03p01 | 21125 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_NoDiffusion_v09_37_01_03p01_reco2_commonruns | -| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_NoDiffusion_v09_37_01_03p01_calibtuples_commonruns | -| Cosmics, Lifetime 6 ms, No SCE No Diffusion | MCP2021C | v09_37_01_03p01 | 20600 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_NoDiffusion_v09_37_01_03p01_reco2_commonruns | -| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoSCE_NoDiffusion_v09_37_01_03p01_calibtuples_commonruns | +| Cosmics, Lifetime 3.5 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_reco2 | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_calibtuples | +| Cosmics, Lifetime 6 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_reco2 | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_calibtuples | +| Cosmics, Lifetime 3.5 ms, No Diffusion | MCP2021C | v09_37_01_03p01 | 20925 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoDiffusion_v09_37_01_03p01_reco2 | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoDiffusion_v09_37_01_03p01_calibtuples | +| Cosmics, Lifetime 6 ms, No Diffusion | MCP2021C | v09_37_01_03p01 | 20750 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoDiffusion_v09_37_01_03p01_reco2 | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoDiffusion_v09_37_01_03p01_calibtuples | +| Cosmics, Lifetime 3.5 ms, No SCE No Diffusion | MCP2021C | v09_37_01_03p01 | 21125 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_NoDiffusion_v09_37_01_03p01_reco2 | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_NoDiffusion_v09_37_01_03p01_calibtuples | +| Cosmics, Lifetime 6 ms, No SCE No Diffusion | MCP2021C | v09_37_01_03p01 | 20600 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_NoDiffusion_v09_37_01_03p01_reco2 | +| --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime6ms_NoSCE_NoDiffusion_v09_37_01_03p01_calibtuples | | Cosmics, Lifetime 1 ms | MCP2021C | v09_37_01_03p01 | 20200 | reco2 | IcarusProd_PuritySample_eLifetime1ms_v09_37_01_03p01_reco2_commonruns | | --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime1ms_v09_37_01_03p01_calibtuples_commonruns | | Cosmics, Lifetime 3.5 ms | MCP2021C | v09_37_01_03p01 | 20200 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_v09_37_01_03p01_reco2_commonruns | From 01101ed62a33e37d67d4d9c983efc27e6929e8ba Mon Sep 17 00:00:00 2001 From: miquelnebot Date: Thu, 10 Mar 2022 06:40:08 -0600 Subject: [PATCH 0024/1437] move Release list to RM folder --- .../Releases/List_of_SBN_code_releases.md | 71 ------------------- .../Releases/sbnana_v09_31_00_01.md | 42 ----------- ...de Releases v09_19_00_02, and v09_20_00.md | 27 ------- .../sbncode sbnana Releases v09_21_00.md | 17 ----- .../Releases/sbncode_sbnana_SBN2021B.md | 56 --------------- .../Releases/sbncode_sbnana_SBN2021C.md | 61 ---------------- .../Releases/sbncode_sbnana_v09_22_00.md | 24 ------- .../Releases/sbncode_sbnana_v09_22_01_01.md | 16 ----- .../Releases/sbncode_sbnana_v09_22_02_00.md | 34 --------- .../Releases/sbncode_sbnana_v09_22_03_00.md | 28 -------- .../Releases/sbncode_sbnana_v09_22_03_01.md | 38 ---------- .../Releases/sbncode_sbnana_v09_23_01_00.md | 29 -------- .../Releases/sbncode_sbnana_v09_24_00.md | 36 ---------- .../Releases/sbncode_sbnana_v09_24_01_00.md | 33 --------- .../Releases/sbncode_sbnana_v09_24_02_00.md | 39 ---------- .../Releases/sbncode_sbnana_v09_25_00_00.md | 59 --------------- .../Releases/sbncode_sbnana_v09_26_00.md | 47 ------------ .../Releases/sbncode_sbnana_v09_27_00.md | 42 ----------- .../Releases/sbncode_sbnana_v09_28_02.md | 22 ------ .../Releases/sbncode_sbnana_v09_33_00.md | 57 --------------- .../Releases/sbncode_sbnana_v09_34_00.md | 49 ------------- .../Releases/sbncode_sbnana_v09_35_00.md | 41 ----------- .../Releases/sbncode_sbnana_v09_35_01.md | 50 ------------- .../Releases/sbncode_sbnana_v09_36_00.md | 63 ---------------- .../Releases/sbncode_sbnana_v09_36_00_01.md | 42 ----------- .../Releases/sbncode_sbnana_v09_39_01.md | 51 ------------- .../Releases/sbncode_sbnana_v09_41_00.md | 49 ------------- .../Releases/sbncode_sbnana_v09_42_00.md | 45 ------------ .../Releases/sbncode_v09_22_01.md | 16 ----- .../Releases/sbncode_v09_24_00_01.md | 26 ------- .../Releases/sbncode_v09_25_00.md | 32 --------- .../Releases/sbncode_v09_26_01.md | 29 -------- .../Releases/sbncode_v09_27_00_01.md | 31 -------- .../Releases/sbncode_v09_27_00_02.md | 32 --------- .../Releases/sbncode_v09_28_00.md | 36 ---------- .../Releases/sbncode_v09_28_01_01.md | 31 -------- .../Releases/sbncode_v09_28_01_02.md | 25 ------- .../Releases/sbncode_v09_28_04.md | 35 --------- .../Releases/sbncode_v09_28_05.md | 25 ------- .../Releases/sbncode_v09_29_00.md | 25 ------- .../Releases/sbncode_v09_31_00_01.md | 32 --------- .../Releases/sbncode_v09_32_00.md | 31 -------- .../Releases/sbncode_v09_32_01.md | 34 --------- .../Releases/sbncode_v09_32_01_01.md | 26 ------- .../Releases/sbncode_v09_37_01_01.md | 36 ---------- .../Releases/sbncode_v09_37_01_02.md | 46 ------------ .../Releases/sbncode_v09_37_01_03.md | 43 ----------- .../Releases/sbncode_v09_38_00.md | 34 --------- .../Releases/sbncode_v09_40_00.md | 37 ---------- 49 files changed, 1830 deletions(-) delete mode 100644 AnalysisInfrastructure/Releases/List_of_SBN_code_releases.md delete mode 100644 AnalysisInfrastructure/Releases/sbnana_v09_31_00_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode Releases v09_19_00_02, and v09_20_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode sbnana Releases v09_21_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021B.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021C.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_01_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_02_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_23_01_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_01_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_02_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_25_00_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_26_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_27_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_28_02.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_33_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_34_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_39_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_41_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_sbnana_v09_42_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_22_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_24_00_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_25_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_26_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_27_00_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_27_00_02.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_28_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_28_01_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_28_01_02.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_28_04.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_28_05.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_29_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_31_00_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_32_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_32_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_32_01_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_37_01_01.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_37_01_02.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_37_01_03.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_38_00.md delete mode 100644 AnalysisInfrastructure/Releases/sbncode_v09_40_00.md diff --git a/AnalysisInfrastructure/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/Releases/List_of_SBN_code_releases.md deleted file mode 100644 index 8fa5636a4..000000000 --- a/AnalysisInfrastructure/Releases/List_of_SBN_code_releases.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -layout: page -title: List of SBN code releases ---- - - - -SBN Analysis Infrastructure Group -================================================================ - -See the [Code Development](https://sbnsoftware.github.io/AnalysisInfrastructure/how-to-develop) section on How To Add Features, Fix Bugs, or Otherwise Develop. - -List of `sbncode` releases ------------------------------------------------------------------------- - -**Release managment team**: [Miquel Nebot-Guinot, Wes Ketchum, Joseph Zennamo, Patrick Green and Tracy Usher](mailto:miquel.nebot@ed.ac.uk,wketchum@fnal.gov,jaz8600@fnal.gov) - -These are the releases tagged until now: - -| Version | Notes | Detailed Notes -|----------------|----------------------------------|-------------------------------------------- -|`v09_42_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_42_00.md) -|`v09_37_01_03` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_03.md) -|`v09_41_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_41_00.md) -|`v09_40_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_40_00.md) -|`v09_37_01_02` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_02.md) -|`v09_39_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_39_01.md) -|`v09_38_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_38_00.md) -|`v09_37_01_01` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_01.md) -| `SBN2021C ` | 'sbncode/sbnana' SBN2021C production release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021C.md) -|`v09_36_00_01` | 'sbncode/sbnana' patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00_01.md) -|`v09_36_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00.md) -|`v09_35_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_01.md) -|`v09_35_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_00.md) -|`v09_34_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_34_00.md) -|`v09_33_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_33_00.md) -|`v09_31_00_01` | 'sbnana' special (migration) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbnana_v09_31_00_01.md) -|`v09_32_01_01` | 'sbncode' patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_01_01.md) -|`v09_32_01` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_01.md) -|`v09_32_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_00.md) -|`v09_31_00_01` | 'sbncode' special (migration) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_31_00_01.md) -|`v09_29_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_29_00.md) -|`v09_28_01_02` | 'sbncode' production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_01_02.md) -|`v09_28_05` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_05.md) -|`v09_28_04` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_04.md) -|`v09_28_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_28_02.md) -|`v09_28_01_01` | 'sbncode' production(Aug13) patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_01_01.md) -|`SBN2021B` | 'sbncode/sbnana' production (Aug13) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021B.md) -|`v09_28_00` | 'sbncode/sbnana' Weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_00.md) -|`v09_27_00_02` | 'sbncode' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_27_00_02.md) -|`v09_27_00_01` | 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_27_00_01.md) -|`v09_27_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_27_00.md) -|`v09_26_01` | 'sbncode' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_26_01.md) -|`v09_26_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_26_00.md) -|`v09_25_00_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_25_00_00.md) -|`v09_25_00` | 'sbncode' requested release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_25_00.md) -|`v09_24_02_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_02_00.md) -|`v09_24_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_01_00.md) -|`v09_24_00_01`| 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_24_00_01.md) -|`v09_24_00` | 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_00.md) -|`v09_23_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_23_01_00.md) -|`v09_22_03_01`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_01.md) -|`v09_22_03_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_00.md) -|`v09_22_02_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_02_00.md) -|`v09_22_01_01`| 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_07`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_01_01.md) -|`v09_22_01` | 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_22_01.md) -|`v09_22_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_06`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_00.md) -|`v09_21_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_05`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode%20sbnana%20Releases%20v09_21_00.md) -|`v09_20_00` | Weekly release | [Release Notes]() -|`v09_19_00_02`| Workshop release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode%20Releases%20v09_19_00_02%2C%20and%20v09_20_00.md) - diff --git a/AnalysisInfrastructure/Releases/sbnana_v09_31_00_01.md b/AnalysisInfrastructure/Releases/sbnana_v09_31_00_01.md deleted file mode 100644 index 0bd6dd7b3..000000000 --- a/AnalysisInfrastructure/Releases/sbnana_v09_31_00_01.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbnana v09_31_00_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -15 October 2021 - -Purpose ---------------------------------------------------- -* special (migration) release - -New features ---------------------------------------------------- - -For the mrb/cetbuildtools migration, a supplementary sbnana v09_31_00_01 has been cut and release this week as well. Following other migrations, from this version on mrb 5 and cetbuildtools 8 will be required. - -sbnana (v09_31_00_01): -update art 3.09 mrb 5 and cetbuildtools 8 -Using: -sbnanaobj v09_17_01 -ifdhc v2_5_16 -srproxy v00.31 -osclib v00.17 -cetbuildtools v8_14_02 -PRs Included: -SBNSoftware/sbnana replacing nova.special to file_name #45 - -Extra info ---------------------------------------------------- -redmine ticket tracking the changes needed for this migration: -[LArSoft - Support #26334] (Assigned) request feature/team_for_art_v3_09 for sbnana -Support #26334: request feature/team_for_art_v3_09 for sbnana (https://cdcvs.fnal.gov/redmine/issues/26334) diff --git a/AnalysisInfrastructure/Releases/sbncode Releases v09_19_00_02, and v09_20_00.md b/AnalysisInfrastructure/Releases/sbncode Releases v09_19_00_02, and v09_20_00.md deleted file mode 100644 index 9cab92aff..000000000 --- a/AnalysisInfrastructure/Releases/sbncode Releases v09_19_00_02, and v09_20_00.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -Hi all, -  - -We have cut two new releases of sbncode this weekend. -  -sbncode v09_19_00_02 is a patch release to be used to make CAF files for the upcoming workshop: -  -* Make event weighting work for cosmics gen files (#110) -* CAF updates for ICARUS (#108) -* Improved flash-matching file error messages (#104) - - - -sbncode v09_20_00 is a weekly release based on larsoft v09_20_00, and uses sbnanaobj v09_16_06, which adds class versions to StandardRecord objects, allowing for serialization/backwards compatibility moving forward. - - - -Wes -  -  -  diff --git a/AnalysisInfrastructure/Releases/sbncode sbnana Releases v09_21_00.md b/AnalysisInfrastructure/Releases/sbncode sbnana Releases v09_21_00.md deleted file mode 100644 index 9a6c50304..000000000 --- a/AnalysisInfrastructure/Releases/sbncode sbnana Releases v09_21_00.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -Hi all, - - -We have cut a new releases of sbncode and sbnana. - - -sbncode v09_21_00 is a weekly release based on larsoft v09_21_00. -sbnana v09_21_00 is also available. - - -Miquel diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021B.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021B.md deleted file mode 100644 index 19e69d88b..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021B.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode sbnana SBN2021B Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Production release - -New features ---------------------------------------------------- -The production release of sbncode sbnana (SBN2021B) has been tagged and released. - -This production release tag (SBN2021B) is based in versions: - -sbncode sbnana v09_28_01 - -sbnobj v09_11_17 - -sbnanaobj v09_16_13 - - -And it includes (since last release): - - sbncode : - -Don't crash if weights are not present and strictmode==false #161 - -Heuristic method for determining detector ID #163 - -Updates to Configurations for ICARUS MCP #156 - -Feature/etyley caf units #120 - - sbnana: - -Remove unused SREnums.h #42 - -Update shower energy units #29 - - sbnanaobj: - -Feature/etyley caf units #18 - - - -Fixes for the production release to be done in "release/SBN2021B” branch. diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021C.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021C.md deleted file mode 100644 index 745ec8cbd..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021C.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -layout: page -title: sbncode_sbnana_SBN2021C -toc: true ---- - -sbncode sbnana SBN2021C (v09_37_01) Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -22 November 2021 - -Purpose ---------------------------------------------------- -* SBN2021C production release - -New features ---------------------------------------------------- -The SBN2021C production release of sbncode and sbnana has been cut and distributed. -Usual versioning (v09_37_01) for ups/mrb and SBN2021C GitHub tag/branch have been used. - -* sbncode (v09_37_01): - - Using: - * larsoft v09_37_01 - * sbnobj v09_12_08 - * lardataobj v09_03_05 - * sbnanaobj v09_17_06 - * sbndata v01_03 - - PRs Included: - - * SBNSoftware/sbncode port T. Brooks' GeometryWrappers #195 - * SBNSoftware/sbncode Feature/jlarkin refactor cafmaker fcl #197 - * SBNSoftware/sbncode Update ICARUS detector location and detector box #193 - * SBNSoftware/sbncode Updates to CAF #194 - * SBNSoftware/sbncode Update CMakeLists.txt #200, #201, #202 fix bugs - * SBNSoftware/sbncode This is a fix for a seg-fault arising from missing MWR devices#199 - * SBNSoftware/sbncode Update SBNEventWeight Module FHiCLs.#192 - * SBNSoftware/sbncode Calibration NTuple Update #196 - * SBNSoftware/sbncode change genieweight fhicl, universes 100->20 #203 - * SBNSoftware/sbnanaobj Updates to CAF #31 - * SBNSoftware/sbnobj Calibration NTuple Update #33 - -* sbnana (v09_37_01): - - Using: - * sbnanaobj v09_17_06 - * sbndata v01_03 - - PRs Included: - - * SBNSoftware/sbnana Implement NuMI flux systs using external histogram file #47 - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_00.md deleted file mode 100644 index d57034ea0..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_00.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -Hi all, - - -sbncode and sbnana v09_22_00 have been tagged and released. - - -This includes updating to larsoft v09_22_00, as well as the following updates: - - -sbnobj (v09_11_06): -Update in CRT data, documentation (#12) - - -sbnana: -Updates for cafana weight systs (#16) - - -Miquel diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_01_01.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_01_01.md deleted file mode 100644 index 971ac5dc4..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_01_01.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_22_01_01 have been tagged and released. -This includes updating to larsoft v09_22_01, as well as the following updates: - - -sbnobj (v09_11_07): -Update lardataobj dependency to v09_01_02 - - -sbnana: -Updates to "Keep up with latest versions of external products" (#17) diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_02_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_02_00.md deleted file mode 100644 index ce41dcfd8..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_02_00.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_22_02_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- - -sbncode and sbnana v09_22_02_00 have been tagged and released. - - -This includes the following updates: - - -sbncode: -Update to LArSoft v09_22_02 - - -sbnana: -Updates to "Add a SpillCut argument to all the relevant classes and enable to use the official NumuCuts" (#19) -"Fix of warnings at runtime” (#20) diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_00.md deleted file mode 100644 index 4f008d397..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_00.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_22_03_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -sbncode and sbnana v09_22_03_00 have been tagged and released. - - -This includes the following updates: -Update to LArSoft v09_22_03 - - -This is the last sbn release with e19 compiler qualifiers. From next release e20 and c7 only will be used. diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_01.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_01.md deleted file mode 100644 index a2d429f6d..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_01.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_22_03_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -sbncode and sbnana v09_22_03_01 have been tagged and released. -This includes the following updates: - -sbncode: -using sbndaq_artdaq_core v0_07_06_of0 (#117) -using sbnobj v09_11_08 -using sbnanaobj v09_16_07 -update default and list of qualifiers - -sbnana: -using sbnanaobj v09_16_07 -update default and list of qualifiers -PRs: -Links in README.md marked down. #21 -Update srproxy version to resolve a problem with std::isnan() #22 -CAFs have baseline in metres, not kilometres #23 -mueller icarus numucc pac2021#24 - diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_23_01_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_23_01_00.md deleted file mode 100644 index 1743d0b0a..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_23_01_00.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_23_01_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -sbncode and sbnana v09_23_01_00 have been tagged and released. - - -This includes the following updates: - - -sbncode: -using larsoft v09_23_01 -using sbnobj v09_11_09 (Fix bug in icarus::trigger::TriggerGateData code. #14) diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_00.md deleted file mode 100644 index 988ed388a..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_00.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_24_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -Weekly releases of sbncode and sbnana v09_24_00 have been tagged and released. -This includes the following updates: - - -sbncode: -* using larsoft v09_24_00 -* NewFMObject #118 -* fakereco #119 -* using sbnobj v09_11_10: Added TimeTagForTimeStamp parameter to PMT configuration data object enhancement #16, NewFMObject #15 -* using sbnanaobj v09_16_08: NewFMObject #15, Checksum update #17, fakereco #16 - - -sbnana: -* sbnd numucc pac202106 #27 -* Macros for PAC results. Reduction macros for icarus, update icarus file paths, joint/overlay contour macro #28 -* using sbnanaobj v09_16_08 diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_01_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_01_00.md deleted file mode 100644 index ed6e989be..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_01_00.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_24_01_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode and sbnana (v09_24_01_00) has been tagged and released. - - -This includes: -* sbncode: - Using larsoft v09_24_01 - - - Includes: - Fix flash unfolding bug (#121) - - - MeV Portal event generators (#114, #122-125) diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_02_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_02_00.md deleted file mode 100644 index bda216c74..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_02_00.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_24_02_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode and sbnana (v09_24_02_00) has been tagged and released. - - -This includes: -* sbncode: - - Using larsoft v09_24_02 - - sbnobj v09_11_11 - - Using lardataobj v09_01_03 - -* sbnana: - - Using ifdhc v2_5_13 - - Includes: - - PR: Revive GetSBNGenieWeightSysts() with proper handling of NonRes knobs. (#30) diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_25_00_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_25_00_00.md deleted file mode 100644 index d173aef95..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_25_00_00.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_22_02_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode (v09_25_00_00) has been tagged and released. - - -This includes: -* sbncode: - - Includes: - - Remove GENIE v2 flag #134 - - FluxReader Addition #130, FluxReader #135 - - Updates to Stub Reconstruction #115, Removed flawed check on hit index #137 - - Razzle Dazzle PID #132, Update razzle-dazzle Weights #136 - - sbnobj v09_11_13: - - Includes: - - Updates to Stub objects #13 - - Razzle Dazzle PID #19 - - sbnanaobj v09_16_09: - - Includes: - - Razzle Dazzle PID #19 - -* sbnana: - - Using sbnanaobj v09_16_09 - - Includes: - - feature/cafana_exposure #31 - - Razzle Dazzle PID #32, Static cast caf::Proxy in ternarys for e20 #33 diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_26_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_26_00.md deleted file mode 100644 index fb2fbbadf..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_26_00.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_26_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode (v09_26_00) has been tagged and released. - -This includes: -* sbncode: - Update to LArSoft v09_26_00 - - sbnobj v09_11_14 - - lardataobj v09_01_04 - - sbnanaobj v09_16_10 - - root v6_22_08b - - sbndaq_artdaq_core v0_07_07_08_of0 - - artdaq_core v3_06_13 (s110) - - Porting MultiPart event generator from icaruscode to sbncode #140 - -* sbnana: - Using sbnanaobj v09_16_10 - - Update osclib v00_15 - - Includes: -special-casing for NonRes systs in the UniverseWeight class #34 diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_27_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_27_00.md deleted file mode 100644 index d35451871..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_27_00.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_27_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode and sbnana (v09_27_00) has been tagged and released. - -This includes: -* sbncode: - - Update to LArSoft v09_27_00 - - PRs: Update Calorimetry in CAFMaker #147, Update metadata services.#126, Updates to Track Skimming.#149 - - Using sbnobj v09_11_15 - - PRs: Updates to Track Skimming.#22 - - Using sbnanaobj v09_16_11 - - PRs: Add in a list of CaloPoint's to SRTrackCalo #22 -* sbnana: - - Using sbnanaobj v09_16_11 - - PRs: Profile function for Systs #36, Make sure to load all available profile histograms #37, Bump srproxy version to v00.25 #38 - diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_28_02.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_28_02.md deleted file mode 100644 index 4c9625b7c..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_28_02.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_28_02 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- - -sbncode and sbnana v09_28_02 releases have been built and published on cvmfs and scisoft. These update the larsoft dependencies and merge in the in patches for SBN2021B: otherwise no other major changes. diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_33_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_33_00.md deleted file mode 100644 index 1fff81520..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_33_00.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode sbnana v09_33_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -15 October 2021 - -Purpose ---------------------------------------------------- -* weekly release - -New features ---------------------------------------------------- - -A weekly release of sbncode and sbnana (v09_33_00) has been cut and distributed. - -sbncode (v09_33_00): - Using: -larsoft v09_33_00 -sbnobj v09_12_04 -sbnanaobj v09_17_02 -sbndaq_artdaq_core v1_00_00of0 -cetbuildtools v8_18_05 -PRs Included: -SBNSoftware/sbncode feature/caf_plane_vectors #159 -SBNSoftware/sbnanaobj feature/caf_plane_vectors #23 -sbnana (v09_33_00): - Using: -sbnanaobj v09_17_02 -cetbuildtools v8_18_05 -PRs Included: -SBNSoftware/sbnana feature/caf_plane_vectors #41 - -For the mrb/cetbuildtools migration, a supplementary sbnana v09_31_00_01 has been cut and release this week as well. Following other migrations, from this version on mrb 5 and cetbuildtools 8 will be required. - -sbnana (v09_31_00_01): -update art 3.09 mrb 5 and cetbuildtools 8 -Using: -sbnanaobj v09_17_01 -ifdhc v2_5_16 -srproxy v00.31 -osclib v00.17 -cetbuildtools v8_14_02 -PRs Included: -SBNSoftware/sbnana replacing nova.special to file_name #45 - -A release of sbndata (v01_00) has been also published. diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_34_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_34_00.md deleted file mode 100644 index 3c6be6663..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_34_00.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode sbnana v09_34_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -23 October 2021 - -Purpose ---------------------------------------------------- -* weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode and sbnana (v09_34_00) has been cut and distributed. - -sbncode (v09_34_00): - Using: -larsoft v09_34_00 -sbnobj v09_12_05 -lardataobj v09_03_03 -sbnanaobj v09_17_03 -PRs Included: -SBNSoftware/sbncode Make floats into doubles -- MeVPrtl Generator.#180 -SBNSoftware/sbncode bnb spill accounting #129 -SBNSoftware/sbncode truth matching per-cryostat works for Portal generator.#179 -SBNSoftware/sbnobj Updates to classes_def #31 -SBNSoftware/sbnobj double precision for MeVPrtl Generator.#30 -SBNSoftware/sbnobj bnb spill accounting #18 -SBNSoftware/sbnanaobj Remove functions from SRTrueParticles #30 -SBNSoftware/sbnanaobj truth-matching per-cryostat. MeVPrtl to doubles.#28 -sbnana (v09_34_00): - Using: -sbnanaobj v09_17_03 -srproxy v00.32 -PRs Included: -SBNSoftware/sbnana Move functions from SRTrueParticles to TrueParticleHelpers. #46 - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_00.md deleted file mode 100644 index b924181e8..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_00.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode sbnana v09_35_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -28 October 2021 - -Purpose ---------------------------------------------------- -* weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode and sbnana (v09_35_00) has been cut and distributed. - -sbncode (v09_35_00): - Using: -larsoft v09_35_00 -sbnanaobj v09_17_04 -PRs Included: -SBNSoftware/sbncode Add flux event weight #150 -SBNSoftware/sbncode Fill new genie_mode and genie_inttype variables #177 -SBNSoftware/sbnanaobj Add a proper enum for the genie interaction type #27 -sbnana (v09_35_00): - Using: -sbnanaobj v09_17_04 -PRs Included: -SBNSoftware/sbnana Make sure to instantiate proxy for new enum type enhancement#44 - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_01.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_01.md deleted file mode 100644 index 16f65766b..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_01.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode sbnana v09_35_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -05 November 2021 - -Purpose ---------------------------------------------------- -* weekly release - -New features ---------------------------------------------------- - A weekly release of sbncode (v09_35_01) has been cut and distributed. - -sbncode (v09_35_01): - -Using: - -larsoft v09_35_01 - -sbnobj v09_12_06 - -PRs Included: - -SBNSoftware/sbnobj add wdith2 for pmNsigma mode #28 - - A weekly release of sbnana (v09_35_01) has been cut and distributed. - -sbnana (v09_35_01): - -PRs Included: - -SBNSoftware/sbnana Remove a load of files that aren't currently being compiled #51 - -SBNSoftware/sbnana Initial sketch of an automated cut optimizer.#50 - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00.md deleted file mode 100644 index d36e519df..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode sbnana v09_36_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -12 November 2021 - -Purpose ---------------------------------------------------- -* weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode and sbnana (v09_36_00) have been cut and distributed. - -* sbncode (v09_36_00): - - Using: - - larsoft v09_36_00 - - sbnobj v09_12_06 - - sbnanaobj v09_17_05 - - sbndata v01_02 - - PRs Included: - - SBNSoftware/sbncode Make End Median dQ/dx range configurable.#184 - - SBNSoftware/sbncode Updates to Calibration Workflows.#178 - - SBNSoftware/sbncode Purity and Completeness of PFPs #187#182#183 - - SBNSoftware/sbncode Feature/keng update genie w #176 - - SBNSoftware/sbnobj Save More Truth Information in Calibration NTuple.#29 - - SBNSoftware/sbnanaobj Purity and Completeness of PFPs.#29 - - -* sbnana (v09_36_00): - - Using: - - sbnanaobj v09_17_04 - - sbndata v01_02 - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00_01.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00_01.md deleted file mode 100644 index b57f5caab..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00_01.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode sbnana v09_36_00_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -15 November 2021 - -Purpose ---------------------------------------------------- -* patch release - -New features ---------------------------------------------------- -A weekly release of sbncode and sbnana (v09_36_00_01) have been cut and distributed. - -* sbncode (v09_36_00_01): - - Using: - - sbnobj v09_12_07 - - -* sbnana (v09_36_00_01): - - Using: - - sbnanaobj v09_17_05 - - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_39_01.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_39_01.md deleted file mode 100644 index f989c519e..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_39_01.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: page -title: sbncode_sbnana_v09_39_01 -toc: true ---- - -sbncode sbnana v09_39_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -10 December 2021 - -Purpose ---------------------------------------------------- -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode and sbnana (v09_39_01) following larsoft release has been cut and distributed. - -* sbncode (v09_39_01): - Using: - * larsoft v09_39_01 - * sbnobj v09_13_00 - * lardataobj v09_04_00 - * sbnanaobj v09_17_07 - * cetbuildtools v8_18_09 - - Includes: - * SBNSoftware/sbncode Feature/lg nutools v3 12 00 #214 - * SBNSoftware/sbnobj Feature/lg nutools v3 12 00 #37 - * SBNSoftware/sbnanaobj Feature/lg nutools v3 12 00 #35 - * SBNSoftware/sbnanaobj Hlay initialisations #37 - -* sbnana (v09_39_01): - Using: - * sbnanaobj v09_17_07 - * ifdhc v2_5_18 - * cetbuildtools v8_18_09 - - Includes: - * SBNSoftware/sbnana Feature/lg nutools v3 12 00 #54 - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_41_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_41_00.md deleted file mode 100644 index b256eb38c..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_41_00.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: page -title: sbncode_sbnana_v09_41_00 -toc: true ---- - -sbncode sbnana v09_41_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -23 December 2021 - -Purpose ---------------------------------------------------- -* Weekly release - -New features ---------------------------------------------------- -sbncode and sbnana (v09_41_00) weekly releases have been cut and distributed. - -* sbncode (v09_41_00): - - Using: - * larsoft v09_41_00 - * sbnobj v09_13_01 - * lardataobj v09_05_00 - * sbnanaobj v09_17_09 - - Includes: - * SBNSoftware/sbncode Greenlee pid update #222 - * SBNSoftware/sbncode feature/jzettle_pot_accounting_cafs_take2 #224 - * SBNSoftware/sbncode Correctly zero-initialize CAFMaker output files and trees in all cases #223 - * SBNSoftware/sbnanaobj feature/jzettle_pot_accounting_cafs_take2 #41 - * SBNSoftware/sbnanaobj Add the hdr.husk flag to support the ability to reduce files without losing track of their POT #40 - -* sbnana (v09_41_00): - - Using: - * sbnanaobj v09_17_09 - * SBNSoftware/sbnana Add logic for FileReducer #55 - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_42_00.md b/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_42_00.md deleted file mode 100644 index 2ca09f2a5..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_42_00.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -layout: page -title: sbncode_sbnana_v09_42_00 -toc: true ---- - -sbncode sbnana v09_42_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -14 January 2022 - -Purpose ---------------------------------------------------- -* Weekly release - -New features ---------------------------------------------------- -sbncode and sbnana (v09_42_00) weekly releases have been cut and distributed. - -* sbncode (v09_42_00): - - Using: - * larsoft v09_42_00 - * sbnobj v09_13_02 - * lardataobj v09_05_01 - - -* sbnana (v09_42_00): - - Using: - * ifdhc v2_6_1 - - Includes: - * SBNSoftware/sbnana Move SRProxy and FlatRecord logic from sbnana to sbnanaobj#53 - - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_22_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_22_01.md deleted file mode 100644 index 6e43b9e5d..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_22_01.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -Hi all, - -Small fix in sbncode dependencies version numbering. - - -New release v09_22_01 is available. - - - -Miquel diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_24_00_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_24_00_01.md deleted file mode 100644 index 3395f8a92..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_24_00_01.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_24_00_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Patch release - -New features ---------------------------------------------------- -A patch releases of sbncode ( v09_24_00_01) has been tagged and released. -This includes: - - -sbncode: -using sbndaq-artdaq-core v0_07_06_01_of0 (#29) diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_25_00.md b/AnalysisInfrastructure/Releases/sbncode_v09_25_00.md deleted file mode 100644 index cb3ac62ca..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_25_00.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_25_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Requested release - -New features ---------------------------------------------------- -A sbncode release (v09_25_00) has been tagged and released. - -This includes: -* sbncode: - - Using larsoft v09_25_00 - - Includes: New track calo skimmer module for ICARUS calibration stuff. #128 - -* sbnobj v09_11_12: - - Includes: New track calo skimmer module for ICARUS calibration stuff. #17 diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_26_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_26_01.md deleted file mode 100644 index 0f3898609..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_26_01.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode and sbnana v09_26_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode (v09_26_01) has been tagged and released. - -This includes: -* sbncode: - - Update to LArSoft v09_26_01 - - - no valid weights if StrictMode=false #144, Cleanup notebooks #148 diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_27_00_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_27_00_01.md deleted file mode 100644 index ec50fe37d..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_27_00_01.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_27_00_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Patch release - -New features ---------------------------------------------------- -A patch release of sbncode (v09_27_00_01) has been tagged and released. - -This was for Fix to Missing FileEntry for sbnobj/Common/Calibration/TrackCaloSkimmerObj.h sbnobj PR #23 - - -But also includes already merged: -* sbncode (sbnobj): - - Refactor configs and products out of sbncode for MeVPrtl Event Generator #141 (#20) - - Stubs in ICARUS and with Space Charge #143 (#21) diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_27_00_02.md b/AnalysisInfrastructure/Releases/sbncode_v09_27_00_02.md deleted file mode 100644 index c6dc6fa31..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_27_00_02.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_27_00_02 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode (v09_27_00_02) has been tagged and released. - -This includes: -* sbncode: - - Stubs in CAFMaker #145, Fill Objects for MeVPrtl in StandardRecord #146 - - - sbnanobj: - - new SRStub object and add to SRSliceRecoBranch #20, Fill Objects for MeVPrtl in StandardRecord #21 - diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_28_00.md b/AnalysisInfrastructure/Releases/sbncode_v09_28_00.md deleted file mode 100644 index 731e756e4..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_28_00.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_28_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode (v09_28_00) has been tagged and released. -This includes: -* sbncode: - - Update to LArsSoft v09_28_00 - - Simple-Flash Match#152 - - Improve bookeeping of not-candidate slices #157 - - Add missing definition for fmatch #158 - - Generalize CAFMaker#151 - - genie_xsec dependency to sbncode #154 - diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_28_01_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_28_01_01.md deleted file mode 100644 index fce36a7ac..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_28_01_01.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_28_01_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* patch release - -New features ---------------------------------------------------- - -We have just released a patch release for the SBN2021B production, which has the following updates: - -sbnanaobj (v09_16_13_01): -adding a missing g4 process #25 (https://github.com/SBNSoftware/sbnanaobj/pull/25) - -sbncode (v09_28_01_01): -Fixing SBND CAF maker fcl #167 (https://github.com/SBNSoftware/sbncode/pull/167) - - -These patches will be merge into develop shortly as well diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_28_01_02.md b/AnalysisInfrastructure/Releases/sbncode_v09_28_01_02.md deleted file mode 100644 index d9ece1a06..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_28_01_02.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_28_01_02 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* SBN2021B production patch release - -New features ---------------------------------------------------- - -A patch release of sbncode (v09_28_01_02) for SBN2021B production has been tagged and released. - -This release is based on larsoft v09_28_01_01 patch. - diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_28_04.md b/AnalysisInfrastructure/Releases/sbncode_v09_28_04.md deleted file mode 100644 index e3c0856b9..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_28_04.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_28_04 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* Weekly release - -New features ---------------------------------------------------- -The weekly release of sbncode (v09_28_04 ) has been tagged and released. - -larsoft v09_28_04 -sbnobj v09_11_19 - -sbndaq_artdaq_core v0_07_09_of0 - - -And it includes (since last release): - -Update to v0_07_09_of0 of sbndaq_artdaq_core (requires icaruscode PR #253) - -Has the calo skimmer update (sbncode #166) for sbnd and icarus detector flags - -Has the removal of default constructor in CRTData in sbnobj (#25) diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_28_05.md b/AnalysisInfrastructure/Releases/sbncode_v09_28_05.md deleted file mode 100644 index bf499aea5..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_28_05.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_28_05 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* weekly release - -New features ---------------------------------------------------- - -A weekly release of sbncode (v09_28_05) has been tagged and released. - -This release is based on larsoft v09_28_05 - diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_29_00.md b/AnalysisInfrastructure/Releases/sbncode_v09_29_00.md deleted file mode 100644 index faa685a5e..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_29_00.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_29_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* weekly release - -New features ---------------------------------------------------- - -A weekly release of sbncode (v09_29_00) has been tagged and released. - -This release is based on larsoft v09_29_00. - diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_31_00_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_31_00_01.md deleted file mode 100644 index dbd585827..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_31_00_01.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_31_00_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* special release - -New features ---------------------------------------------------- - -The release of sbncode v09_31_00_01 following larsoft v09_31_00 release with the migration to art 3.09 mrb 5 and cetbuildtools 8 is finally out. - -Using: - larsoft v09_31_00 - sbnobj v09_12_00_01 - sbnanaobj v09_17_00_01 - sbndaq_artdaq_core v0_07_09of1 - - -This release also includes sbnobj PR #26 Feature/lynnt obj comm merged in between releases. - diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_32_00.md b/AnalysisInfrastructure/Releases/sbncode_v09_32_00.md deleted file mode 100644 index 839a3cc03..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_32_00.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_32_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Purpose ---------------------------------------------------- - -* weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode (v09_32_00) has been cut and distributed. - -Using: - larsoft v09_32_00 - sbnobj v09_12_02 - - -Includes: -SBNSoftware/sbncode Feature/lnguyen caloskimmer #173 - - diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_32_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_32_01.md deleted file mode 100644 index 99dc441f5..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_32_01.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_32_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -8 October 2021 - -Purpose ---------------------------------------------------- -* weekly release - -New features ---------------------------------------------------- - -A weekly release of sbncode (v09_32_01) has been cut and distributed. - -Using: - larsoft v09_32_01 - sbnobj v09_12_03 (lardataobj v09_03_02) - - -Includes: -SBNSoftware/sbncode Demote excesively frequent message. Add TODO note #175 - diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_32_01_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_32_01_01.md deleted file mode 100644 index 63af98567..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_32_01_01.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: page -title: Release Notes Page -toc: true ---- - -sbncode v09_32_01_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -11 October 2021 - -Purpose ---------------------------------------------------- -* patch release - -New features ---------------------------------------------------- -A patch release of sbncode (v09_32_01_01) has been cut and distributed. - -Using sbndaq_artdaq_core v0_07_09of2 diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_37_01_01.md b/AnalysisInfrastructure/Releases/sbncode_v09_37_01_01.md deleted file mode 100644 index 71ed97e35..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_37_01_01.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: sbncode_v09_37_01_01 -toc: true ---- - -sbncode v09_37_01_01 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -26 November 2021 - -Purpose ---------------------------------------------------- -* SBN2021C production patch release - -New features ---------------------------------------------------- -A sbncode (v09_37_01_01) patch release for the SBN2021C production has been cut and distributed. - -* sbncode (v09_37_01_01): - - Using: - * sbnobj v09_12_09 - - PRs Included: - * SBNSoftware/sbnobj Added CRT Hit to anab::T0 assns #34 - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_37_01_02.md b/AnalysisInfrastructure/Releases/sbncode_v09_37_01_02.md deleted file mode 100644 index 6d6fc476e..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_37_01_02.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: page -title: sbncode_v09_37_01_02 -toc: true ---- - -sbncode v09_37_01_02 (SBN2021C patch) Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -13 December 2021 - -Purpose ---------------------------------------------------- -* SBN2021C production patch release - -New features ---------------------------------------------------- -A sbncode (v09_37_01_02) patch release for the SBN2021C production has been cut and distributed. - -* sbncode (v09_37_01_02): - Using: - * larsoft v09_37_01_01 - * sbnobj v09_12_09 - * sbnanaobj v09_17_06_01 - - Includes: - * SBNSoftware/sbncode feature/cafmaker_flat_option#188 - * SBNSoftware/sbnanaobj Move SRProxy and FlatRecord logic from sbnana to sbnanaobj#32 - * SBNSoftware/sbncode BNBRetriever fix: don't write entries incrementally#207 - * SBNSoftware/sbnanaobj Ensure initialisations#33 - * SBNSoftware/sbncode Add another globalTree bail out condition for the case where the list of labels is empty#206 - * SBNSoftware/sbncode SBNEventWeight_fix bugs that slow down the code & of incorrect looping.#212 - * SBNSoftware/sbncode BNBRetriever fix: fill event number#208 - * SBNSoftware/sbncode adding missing geant processes to CAF#215 - * SBNSoftware/sbnanaobj adding missing GEANT processes to CAFs#36 - * SBNSoftware/sbncode Take the fIsRealData that was previously hard-coded to false and set ...#209 - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_37_01_03.md b/AnalysisInfrastructure/Releases/sbncode_v09_37_01_03.md deleted file mode 100644 index 227cde869..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_37_01_03.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: page -title: sbncode_v09_37_01_03 -toc: true ---- - -sbncode v09_37_01_03 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -14 January 2022 - -Purpose ---------------------------------------------------- -* SBN2021C production patch release - -New features ---------------------------------------------------- -A sbncode (v09_37_01_03) patch release for the SBN2021C production has been cut and distributed. - -* sbncode (v09_37_01_03): - - Using: - * larsoft v09_37_01_01 - * sbnobj v09_12_09 - * sbnanaobj v09_17_06_02 - * cetbuildtools v8_18_05 - - Includes: - * SBNSoftware/sbnanaobj production CAF fix #42 - * SBNSoftware/sbncode production CAF fix #226 - * Revert CMakelists changes introduced in release/SBN2021C for later cetbuildtools version v8_18_09 - - - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_38_00.md b/AnalysisInfrastructure/Releases/sbncode_v09_38_00.md deleted file mode 100644 index 61b872b88..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_38_00.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: page -title: sbncode_v09_38_00 -toc: true ---- - -sbncode v09_38_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -6 December 2021 - -Purpose ---------------------------------------------------- -* Weekly release - -New features ---------------------------------------------------- -A weekly release of sbncode (v09_38_00) following larsoft release has been cut and distributed. - -* sbncode (v09_38_00): - Using: - * larsoft v09_38_00 - * sbnobj v09_12_10 - * lardataobj v09_03_06 - - -Extra info ---------------------------------------------------- diff --git a/AnalysisInfrastructure/Releases/sbncode_v09_40_00.md b/AnalysisInfrastructure/Releases/sbncode_v09_40_00.md deleted file mode 100644 index e60c41ba2..000000000 --- a/AnalysisInfrastructure/Releases/sbncode_v09_40_00.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: page -title: sbncode_v09_40_00 -toc: true ---- - -sbncode v09_40_00 Release Notes -======================================================================================= - -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) - -Download instructions for [sbncode]() - -Date ---------------------------------------------------- -17 December 2021 - -Purpose ---------------------------------------------------- -* Weekly release - -New features ---------------------------------------------------- -A sbncode (v09_40_00) weekly release has been cut and distributed. - - * sbncode (v09_40_00): - Using: - * larsoft v09_40_00 - * sbnanaobj v09_17_08 - - Includes: - * SBNSoftware/sbncode merge production developments in SBN2021C branch #217 - * SBNSoftware/sbnanaobj merge production developments in SBN2021C branch #38 - * SBNSoftware/sbncode New FluxReader Interface to Read BooNE Tuple Files #213 - -Extra info ---------------------------------------------------- From ae8de74c609cca119e39d2b2460427a4b555b7c3 Mon Sep 17 00:00:00 2001 From: miquelnebot Date: Thu, 10 Mar 2022 06:41:04 -0600 Subject: [PATCH 0025/1437] add Release list in RM folder --- .../Releases/List_of_SBN_code_releases.md | 71 +++++++++++++++++++ .../Releases/sbnana_v09_31_00_01.md | 42 +++++++++++ ...de Releases v09_19_00_02, and v09_20_00.md | 27 +++++++ .../sbncode sbnana Releases v09_21_00.md | 17 +++++ .../Releases/sbncode_sbnana_SBN2021B.md | 56 +++++++++++++++ .../Releases/sbncode_sbnana_SBN2021C.md | 61 ++++++++++++++++ .../Releases/sbncode_sbnana_v09_22_00.md | 24 +++++++ .../Releases/sbncode_sbnana_v09_22_01_01.md | 16 +++++ .../Releases/sbncode_sbnana_v09_22_02_00.md | 34 +++++++++ .../Releases/sbncode_sbnana_v09_22_03_00.md | 28 ++++++++ .../Releases/sbncode_sbnana_v09_22_03_01.md | 38 ++++++++++ .../Releases/sbncode_sbnana_v09_23_01_00.md | 29 ++++++++ .../Releases/sbncode_sbnana_v09_24_00.md | 36 ++++++++++ .../Releases/sbncode_sbnana_v09_24_01_00.md | 33 +++++++++ .../Releases/sbncode_sbnana_v09_24_02_00.md | 39 ++++++++++ .../Releases/sbncode_sbnana_v09_25_00_00.md | 59 +++++++++++++++ .../Releases/sbncode_sbnana_v09_26_00.md | 47 ++++++++++++ .../Releases/sbncode_sbnana_v09_27_00.md | 42 +++++++++++ .../Releases/sbncode_sbnana_v09_28_02.md | 22 ++++++ .../Releases/sbncode_sbnana_v09_33_00.md | 57 +++++++++++++++ .../Releases/sbncode_sbnana_v09_34_00.md | 49 +++++++++++++ .../Releases/sbncode_sbnana_v09_35_00.md | 41 +++++++++++ .../Releases/sbncode_sbnana_v09_35_01.md | 50 +++++++++++++ .../Releases/sbncode_sbnana_v09_36_00.md | 63 ++++++++++++++++ .../Releases/sbncode_sbnana_v09_36_00_01.md | 42 +++++++++++ .../Releases/sbncode_sbnana_v09_39_01.md | 51 +++++++++++++ .../Releases/sbncode_sbnana_v09_41_00.md | 49 +++++++++++++ .../Releases/sbncode_sbnana_v09_42_00.md | 45 ++++++++++++ .../Releases/sbncode_v09_22_01.md | 16 +++++ .../Releases/sbncode_v09_24_00_01.md | 26 +++++++ .../Releases/sbncode_v09_25_00.md | 32 +++++++++ .../Releases/sbncode_v09_26_01.md | 29 ++++++++ .../Releases/sbncode_v09_27_00_01.md | 31 ++++++++ .../Releases/sbncode_v09_27_00_02.md | 32 +++++++++ .../Releases/sbncode_v09_28_00.md | 36 ++++++++++ .../Releases/sbncode_v09_28_01_01.md | 31 ++++++++ .../Releases/sbncode_v09_28_01_02.md | 25 +++++++ .../Releases/sbncode_v09_28_04.md | 35 +++++++++ .../Releases/sbncode_v09_28_05.md | 25 +++++++ .../Releases/sbncode_v09_29_00.md | 25 +++++++ .../Releases/sbncode_v09_31_00_01.md | 32 +++++++++ .../Releases/sbncode_v09_32_00.md | 31 ++++++++ .../Releases/sbncode_v09_32_01.md | 34 +++++++++ .../Releases/sbncode_v09_32_01_01.md | 26 +++++++ .../Releases/sbncode_v09_37_01_01.md | 36 ++++++++++ .../Releases/sbncode_v09_37_01_02.md | 46 ++++++++++++ .../Releases/sbncode_v09_37_01_03.md | 43 +++++++++++ .../Releases/sbncode_v09_38_00.md | 34 +++++++++ .../Releases/sbncode_v09_40_00.md | 37 ++++++++++ 49 files changed, 1830 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_31_00_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode Releases v09_19_00_02, and v09_20_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode sbnana Releases v09_21_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021B.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021C.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_01_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_02_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_23_01_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_01_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_02_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_25_00_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_26_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_27_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_28_02.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_33_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_34_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_39_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_41_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_22_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_24_00_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_25_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_26_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_02.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_02.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_04.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_05.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_29_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_31_00_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_01.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_02.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_03.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_38_00.md create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_40_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md new file mode 100644 index 000000000..8fa5636a4 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -0,0 +1,71 @@ +--- +layout: page +title: List of SBN code releases +--- + + + +SBN Analysis Infrastructure Group +================================================================ + +See the [Code Development](https://sbnsoftware.github.io/AnalysisInfrastructure/how-to-develop) section on How To Add Features, Fix Bugs, or Otherwise Develop. + +List of `sbncode` releases +------------------------------------------------------------------------ + +**Release managment team**: [Miquel Nebot-Guinot, Wes Ketchum, Joseph Zennamo, Patrick Green and Tracy Usher](mailto:miquel.nebot@ed.ac.uk,wketchum@fnal.gov,jaz8600@fnal.gov) + +These are the releases tagged until now: + +| Version | Notes | Detailed Notes +|----------------|----------------------------------|-------------------------------------------- +|`v09_42_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_42_00.md) +|`v09_37_01_03` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_03.md) +|`v09_41_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_41_00.md) +|`v09_40_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_40_00.md) +|`v09_37_01_02` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_02.md) +|`v09_39_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_39_01.md) +|`v09_38_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_38_00.md) +|`v09_37_01_01` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_01.md) +| `SBN2021C ` | 'sbncode/sbnana' SBN2021C production release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021C.md) +|`v09_36_00_01` | 'sbncode/sbnana' patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00_01.md) +|`v09_36_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00.md) +|`v09_35_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_01.md) +|`v09_35_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_00.md) +|`v09_34_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_34_00.md) +|`v09_33_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_33_00.md) +|`v09_31_00_01` | 'sbnana' special (migration) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbnana_v09_31_00_01.md) +|`v09_32_01_01` | 'sbncode' patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_01_01.md) +|`v09_32_01` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_01.md) +|`v09_32_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_00.md) +|`v09_31_00_01` | 'sbncode' special (migration) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_31_00_01.md) +|`v09_29_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_29_00.md) +|`v09_28_01_02` | 'sbncode' production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_01_02.md) +|`v09_28_05` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_05.md) +|`v09_28_04` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_04.md) +|`v09_28_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_28_02.md) +|`v09_28_01_01` | 'sbncode' production(Aug13) patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_01_01.md) +|`SBN2021B` | 'sbncode/sbnana' production (Aug13) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021B.md) +|`v09_28_00` | 'sbncode/sbnana' Weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_00.md) +|`v09_27_00_02` | 'sbncode' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_27_00_02.md) +|`v09_27_00_01` | 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_27_00_01.md) +|`v09_27_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_27_00.md) +|`v09_26_01` | 'sbncode' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_26_01.md) +|`v09_26_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_26_00.md) +|`v09_25_00_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_25_00_00.md) +|`v09_25_00` | 'sbncode' requested release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_25_00.md) +|`v09_24_02_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_02_00.md) +|`v09_24_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_01_00.md) +|`v09_24_00_01`| 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_24_00_01.md) +|`v09_24_00` | 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_00.md) +|`v09_23_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_23_01_00.md) +|`v09_22_03_01`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_01.md) +|`v09_22_03_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_00.md) +|`v09_22_02_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_02_00.md) +|`v09_22_01_01`| 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_07`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_01_01.md) +|`v09_22_01` | 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_22_01.md) +|`v09_22_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_06`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_00.md) +|`v09_21_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_05`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode%20sbnana%20Releases%20v09_21_00.md) +|`v09_20_00` | Weekly release | [Release Notes]() +|`v09_19_00_02`| Workshop release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode%20Releases%20v09_19_00_02%2C%20and%20v09_20_00.md) + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_31_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_31_00_01.md new file mode 100644 index 000000000..0bd6dd7b3 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_31_00_01.md @@ -0,0 +1,42 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbnana v09_31_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +15 October 2021 + +Purpose +--------------------------------------------------- +* special (migration) release + +New features +--------------------------------------------------- + +For the mrb/cetbuildtools migration, a supplementary sbnana v09_31_00_01 has been cut and release this week as well. Following other migrations, from this version on mrb 5 and cetbuildtools 8 will be required. + +sbnana (v09_31_00_01): +update art 3.09 mrb 5 and cetbuildtools 8 +Using: +sbnanaobj v09_17_01 +ifdhc v2_5_16 +srproxy v00.31 +osclib v00.17 +cetbuildtools v8_14_02 +PRs Included: +SBNSoftware/sbnana replacing nova.special to file_name #45 + +Extra info +--------------------------------------------------- +redmine ticket tracking the changes needed for this migration: +[LArSoft - Support #26334] (Assigned) request feature/team_for_art_v3_09 for sbnana +Support #26334: request feature/team_for_art_v3_09 for sbnana (https://cdcvs.fnal.gov/redmine/issues/26334) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode Releases v09_19_00_02, and v09_20_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode Releases v09_19_00_02, and v09_20_00.md new file mode 100644 index 000000000..9cab92aff --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode Releases v09_19_00_02, and v09_20_00.md @@ -0,0 +1,27 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +Hi all, +  + +We have cut two new releases of sbncode this weekend. +  +sbncode v09_19_00_02 is a patch release to be used to make CAF files for the upcoming workshop: +  +* Make event weighting work for cosmics gen files (#110) +* CAF updates for ICARUS (#108) +* Improved flash-matching file error messages (#104) + + + +sbncode v09_20_00 is a weekly release based on larsoft v09_20_00, and uses sbnanaobj v09_16_06, which adds class versions to StandardRecord objects, allowing for serialization/backwards compatibility moving forward. + + + +Wes +  +  +  diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode sbnana Releases v09_21_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode sbnana Releases v09_21_00.md new file mode 100644 index 000000000..9a6c50304 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode sbnana Releases v09_21_00.md @@ -0,0 +1,17 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +Hi all, + + +We have cut a new releases of sbncode and sbnana. + + +sbncode v09_21_00 is a weekly release based on larsoft v09_21_00. +sbnana v09_21_00 is also available. + + +Miquel diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021B.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021B.md new file mode 100644 index 000000000..19e69d88b --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021B.md @@ -0,0 +1,56 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode sbnana SBN2021B Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Production release + +New features +--------------------------------------------------- +The production release of sbncode sbnana (SBN2021B) has been tagged and released. + +This production release tag (SBN2021B) is based in versions: + +sbncode sbnana v09_28_01 + +sbnobj v09_11_17 + +sbnanaobj v09_16_13 + + +And it includes (since last release): + + sbncode : + +Don't crash if weights are not present and strictmode==false #161 + +Heuristic method for determining detector ID #163 + +Updates to Configurations for ICARUS MCP #156 + +Feature/etyley caf units #120 + + sbnana: + +Remove unused SREnums.h #42 + +Update shower energy units #29 + + sbnanaobj: + +Feature/etyley caf units #18 + + + +Fixes for the production release to be done in "release/SBN2021B” branch. diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021C.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021C.md new file mode 100644 index 000000000..745ec8cbd --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021C.md @@ -0,0 +1,61 @@ +--- +layout: page +title: sbncode_sbnana_SBN2021C +toc: true +--- + +sbncode sbnana SBN2021C (v09_37_01) Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +22 November 2021 + +Purpose +--------------------------------------------------- +* SBN2021C production release + +New features +--------------------------------------------------- +The SBN2021C production release of sbncode and sbnana has been cut and distributed. +Usual versioning (v09_37_01) for ups/mrb and SBN2021C GitHub tag/branch have been used. + +* sbncode (v09_37_01): + + Using: + * larsoft v09_37_01 + * sbnobj v09_12_08 + * lardataobj v09_03_05 + * sbnanaobj v09_17_06 + * sbndata v01_03 + + PRs Included: + + * SBNSoftware/sbncode port T. Brooks' GeometryWrappers #195 + * SBNSoftware/sbncode Feature/jlarkin refactor cafmaker fcl #197 + * SBNSoftware/sbncode Update ICARUS detector location and detector box #193 + * SBNSoftware/sbncode Updates to CAF #194 + * SBNSoftware/sbncode Update CMakeLists.txt #200, #201, #202 fix bugs + * SBNSoftware/sbncode This is a fix for a seg-fault arising from missing MWR devices#199 + * SBNSoftware/sbncode Update SBNEventWeight Module FHiCLs.#192 + * SBNSoftware/sbncode Calibration NTuple Update #196 + * SBNSoftware/sbncode change genieweight fhicl, universes 100->20 #203 + * SBNSoftware/sbnanaobj Updates to CAF #31 + * SBNSoftware/sbnobj Calibration NTuple Update #33 + +* sbnana (v09_37_01): + + Using: + * sbnanaobj v09_17_06 + * sbndata v01_03 + + PRs Included: + + * SBNSoftware/sbnana Implement NuMI flux systs using external histogram file #47 + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_00.md new file mode 100644 index 000000000..d57034ea0 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_00.md @@ -0,0 +1,24 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +Hi all, + + +sbncode and sbnana v09_22_00 have been tagged and released. + + +This includes updating to larsoft v09_22_00, as well as the following updates: + + +sbnobj (v09_11_06): +Update in CRT data, documentation (#12) + + +sbnana: +Updates for cafana weight systs (#16) + + +Miquel diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_01_01.md new file mode 100644 index 000000000..971ac5dc4 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_01_01.md @@ -0,0 +1,16 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_22_01_01 have been tagged and released. +This includes updating to larsoft v09_22_01, as well as the following updates: + + +sbnobj (v09_11_07): +Update lardataobj dependency to v09_01_02 + + +sbnana: +Updates to "Keep up with latest versions of external products" (#17) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_02_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_02_00.md new file mode 100644 index 000000000..ce41dcfd8 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_02_00.md @@ -0,0 +1,34 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_22_02_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- + +sbncode and sbnana v09_22_02_00 have been tagged and released. + + +This includes the following updates: + + +sbncode: +Update to LArSoft v09_22_02 + + +sbnana: +Updates to "Add a SpillCut argument to all the relevant classes and enable to use the official NumuCuts" (#19) +"Fix of warnings at runtime” (#20) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_00.md new file mode 100644 index 000000000..4f008d397 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_00.md @@ -0,0 +1,28 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_22_03_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +sbncode and sbnana v09_22_03_00 have been tagged and released. + + +This includes the following updates: +Update to LArSoft v09_22_03 + + +This is the last sbn release with e19 compiler qualifiers. From next release e20 and c7 only will be used. diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_01.md new file mode 100644 index 000000000..a2d429f6d --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_01.md @@ -0,0 +1,38 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_22_03_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +sbncode and sbnana v09_22_03_01 have been tagged and released. +This includes the following updates: + +sbncode: +using sbndaq_artdaq_core v0_07_06_of0 (#117) +using sbnobj v09_11_08 +using sbnanaobj v09_16_07 +update default and list of qualifiers + +sbnana: +using sbnanaobj v09_16_07 +update default and list of qualifiers +PRs: +Links in README.md marked down. #21 +Update srproxy version to resolve a problem with std::isnan() #22 +CAFs have baseline in metres, not kilometres #23 +mueller icarus numucc pac2021#24 + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_23_01_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_23_01_00.md new file mode 100644 index 000000000..1743d0b0a --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_23_01_00.md @@ -0,0 +1,29 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_23_01_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +sbncode and sbnana v09_23_01_00 have been tagged and released. + + +This includes the following updates: + + +sbncode: +using larsoft v09_23_01 +using sbnobj v09_11_09 (Fix bug in icarus::trigger::TriggerGateData code. #14) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_00.md new file mode 100644 index 000000000..988ed388a --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_00.md @@ -0,0 +1,36 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_24_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +Weekly releases of sbncode and sbnana v09_24_00 have been tagged and released. +This includes the following updates: + + +sbncode: +* using larsoft v09_24_00 +* NewFMObject #118 +* fakereco #119 +* using sbnobj v09_11_10: Added TimeTagForTimeStamp parameter to PMT configuration data object enhancement #16, NewFMObject #15 +* using sbnanaobj v09_16_08: NewFMObject #15, Checksum update #17, fakereco #16 + + +sbnana: +* sbnd numucc pac202106 #27 +* Macros for PAC results. Reduction macros for icarus, update icarus file paths, joint/overlay contour macro #28 +* using sbnanaobj v09_16_08 diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_01_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_01_00.md new file mode 100644 index 000000000..ed6e989be --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_01_00.md @@ -0,0 +1,33 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_24_01_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_24_01_00) has been tagged and released. + + +This includes: +* sbncode: + Using larsoft v09_24_01 + + + Includes: + Fix flash unfolding bug (#121) + + + MeV Portal event generators (#114, #122-125) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_02_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_02_00.md new file mode 100644 index 000000000..bda216c74 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_02_00.md @@ -0,0 +1,39 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_24_02_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_24_02_00) has been tagged and released. + + +This includes: +* sbncode: + + Using larsoft v09_24_02 + + sbnobj v09_11_11 + + Using lardataobj v09_01_03 + +* sbnana: + + Using ifdhc v2_5_13 + + Includes: + + PR: Revive GetSBNGenieWeightSysts() with proper handling of NonRes knobs. (#30) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_25_00_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_25_00_00.md new file mode 100644 index 000000000..d173aef95 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_25_00_00.md @@ -0,0 +1,59 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_22_02_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_25_00_00) has been tagged and released. + + +This includes: +* sbncode: + + Includes: + + Remove GENIE v2 flag #134 + + FluxReader Addition #130, FluxReader #135 + + Updates to Stub Reconstruction #115, Removed flawed check on hit index #137 + + Razzle Dazzle PID #132, Update razzle-dazzle Weights #136 + + sbnobj v09_11_13: + + Includes: + + Updates to Stub objects #13 + + Razzle Dazzle PID #19 + + sbnanaobj v09_16_09: + + Includes: + + Razzle Dazzle PID #19 + +* sbnana: + + Using sbnanaobj v09_16_09 + + Includes: + + feature/cafana_exposure #31 + + Razzle Dazzle PID #32, Static cast caf::Proxy in ternarys for e20 #33 diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_26_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_26_00.md new file mode 100644 index 000000000..fb2fbbadf --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_26_00.md @@ -0,0 +1,47 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_26_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_26_00) has been tagged and released. + +This includes: +* sbncode: + Update to LArSoft v09_26_00 + + sbnobj v09_11_14 + + lardataobj v09_01_04 + + sbnanaobj v09_16_10 + + root v6_22_08b + + sbndaq_artdaq_core v0_07_07_08_of0 + + artdaq_core v3_06_13 (s110) + + Porting MultiPart event generator from icaruscode to sbncode #140 + +* sbnana: + Using sbnanaobj v09_16_10 + + Update osclib v00_15 + + Includes: +special-casing for NonRes systs in the UniverseWeight class #34 diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_27_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_27_00.md new file mode 100644 index 000000000..d35451871 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_27_00.md @@ -0,0 +1,42 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_27_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_27_00) has been tagged and released. + +This includes: +* sbncode: + + Update to LArSoft v09_27_00 + + PRs: Update Calorimetry in CAFMaker #147, Update metadata services.#126, Updates to Track Skimming.#149 + + Using sbnobj v09_11_15 + + PRs: Updates to Track Skimming.#22 + + Using sbnanaobj v09_16_11 + + PRs: Add in a list of CaloPoint's to SRTrackCalo #22 +* sbnana: + + Using sbnanaobj v09_16_11 + + PRs: Profile function for Systs #36, Make sure to load all available profile histograms #37, Bump srproxy version to v00.25 #38 + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_28_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_28_02.md new file mode 100644 index 000000000..4c9625b7c --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_28_02.md @@ -0,0 +1,22 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_28_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- + +sbncode and sbnana v09_28_02 releases have been built and published on cvmfs and scisoft. These update the larsoft dependencies and merge in the in patches for SBN2021B: otherwise no other major changes. diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_33_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_33_00.md new file mode 100644 index 000000000..1fff81520 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_33_00.md @@ -0,0 +1,57 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode sbnana v09_33_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +15 October 2021 + +Purpose +--------------------------------------------------- +* weekly release + +New features +--------------------------------------------------- + +A weekly release of sbncode and sbnana (v09_33_00) has been cut and distributed. + +sbncode (v09_33_00): + Using: +larsoft v09_33_00 +sbnobj v09_12_04 +sbnanaobj v09_17_02 +sbndaq_artdaq_core v1_00_00of0 +cetbuildtools v8_18_05 +PRs Included: +SBNSoftware/sbncode feature/caf_plane_vectors #159 +SBNSoftware/sbnanaobj feature/caf_plane_vectors #23 +sbnana (v09_33_00): + Using: +sbnanaobj v09_17_02 +cetbuildtools v8_18_05 +PRs Included: +SBNSoftware/sbnana feature/caf_plane_vectors #41 + +For the mrb/cetbuildtools migration, a supplementary sbnana v09_31_00_01 has been cut and release this week as well. Following other migrations, from this version on mrb 5 and cetbuildtools 8 will be required. + +sbnana (v09_31_00_01): +update art 3.09 mrb 5 and cetbuildtools 8 +Using: +sbnanaobj v09_17_01 +ifdhc v2_5_16 +srproxy v00.31 +osclib v00.17 +cetbuildtools v8_14_02 +PRs Included: +SBNSoftware/sbnana replacing nova.special to file_name #45 + +A release of sbndata (v01_00) has been also published. diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_34_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_34_00.md new file mode 100644 index 000000000..3c6be6663 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_34_00.md @@ -0,0 +1,49 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode sbnana v09_34_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +23 October 2021 + +Purpose +--------------------------------------------------- +* weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_34_00) has been cut and distributed. + +sbncode (v09_34_00): + Using: +larsoft v09_34_00 +sbnobj v09_12_05 +lardataobj v09_03_03 +sbnanaobj v09_17_03 +PRs Included: +SBNSoftware/sbncode Make floats into doubles -- MeVPrtl Generator.#180 +SBNSoftware/sbncode bnb spill accounting #129 +SBNSoftware/sbncode truth matching per-cryostat works for Portal generator.#179 +SBNSoftware/sbnobj Updates to classes_def #31 +SBNSoftware/sbnobj double precision for MeVPrtl Generator.#30 +SBNSoftware/sbnobj bnb spill accounting #18 +SBNSoftware/sbnanaobj Remove functions from SRTrueParticles #30 +SBNSoftware/sbnanaobj truth-matching per-cryostat. MeVPrtl to doubles.#28 +sbnana (v09_34_00): + Using: +sbnanaobj v09_17_03 +srproxy v00.32 +PRs Included: +SBNSoftware/sbnana Move functions from SRTrueParticles to TrueParticleHelpers. #46 + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_00.md new file mode 100644 index 000000000..b924181e8 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_00.md @@ -0,0 +1,41 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode sbnana v09_35_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +28 October 2021 + +Purpose +--------------------------------------------------- +* weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_35_00) has been cut and distributed. + +sbncode (v09_35_00): + Using: +larsoft v09_35_00 +sbnanaobj v09_17_04 +PRs Included: +SBNSoftware/sbncode Add flux event weight #150 +SBNSoftware/sbncode Fill new genie_mode and genie_inttype variables #177 +SBNSoftware/sbnanaobj Add a proper enum for the genie interaction type #27 +sbnana (v09_35_00): + Using: +sbnanaobj v09_17_04 +PRs Included: +SBNSoftware/sbnana Make sure to instantiate proxy for new enum type enhancement#44 + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_01.md new file mode 100644 index 000000000..16f65766b --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_01.md @@ -0,0 +1,50 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode sbnana v09_35_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +05 November 2021 + +Purpose +--------------------------------------------------- +* weekly release + +New features +--------------------------------------------------- + A weekly release of sbncode (v09_35_01) has been cut and distributed. + +sbncode (v09_35_01): + +Using: + +larsoft v09_35_01 + +sbnobj v09_12_06 + +PRs Included: + +SBNSoftware/sbnobj add wdith2 for pmNsigma mode #28 + + A weekly release of sbnana (v09_35_01) has been cut and distributed. + +sbnana (v09_35_01): + +PRs Included: + +SBNSoftware/sbnana Remove a load of files that aren't currently being compiled #51 + +SBNSoftware/sbnana Initial sketch of an automated cut optimizer.#50 + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00.md new file mode 100644 index 000000000..d36e519df --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00.md @@ -0,0 +1,63 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode sbnana v09_36_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +12 November 2021 + +Purpose +--------------------------------------------------- +* weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_36_00) have been cut and distributed. + +* sbncode (v09_36_00): + + Using: + + larsoft v09_36_00 + + sbnobj v09_12_06 + + sbnanaobj v09_17_05 + + sbndata v01_02 + + PRs Included: + + SBNSoftware/sbncode Make End Median dQ/dx range configurable.#184 + + SBNSoftware/sbncode Updates to Calibration Workflows.#178 + + SBNSoftware/sbncode Purity and Completeness of PFPs #187#182#183 + + SBNSoftware/sbncode Feature/keng update genie w #176 + + SBNSoftware/sbnobj Save More Truth Information in Calibration NTuple.#29 + + SBNSoftware/sbnanaobj Purity and Completeness of PFPs.#29 + + +* sbnana (v09_36_00): + + Using: + + sbnanaobj v09_17_04 + + sbndata v01_02 + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00_01.md new file mode 100644 index 000000000..b57f5caab --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00_01.md @@ -0,0 +1,42 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode sbnana v09_36_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +15 November 2021 + +Purpose +--------------------------------------------------- +* patch release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_36_00_01) have been cut and distributed. + +* sbncode (v09_36_00_01): + + Using: + + sbnobj v09_12_07 + + +* sbnana (v09_36_00_01): + + Using: + + sbnanaobj v09_17_05 + + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_39_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_39_01.md new file mode 100644 index 000000000..f989c519e --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_39_01.md @@ -0,0 +1,51 @@ +--- +layout: page +title: sbncode_sbnana_v09_39_01 +toc: true +--- + +sbncode sbnana v09_39_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +10 December 2021 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_39_01) following larsoft release has been cut and distributed. + +* sbncode (v09_39_01): + Using: + * larsoft v09_39_01 + * sbnobj v09_13_00 + * lardataobj v09_04_00 + * sbnanaobj v09_17_07 + * cetbuildtools v8_18_09 + + Includes: + * SBNSoftware/sbncode Feature/lg nutools v3 12 00 #214 + * SBNSoftware/sbnobj Feature/lg nutools v3 12 00 #37 + * SBNSoftware/sbnanaobj Feature/lg nutools v3 12 00 #35 + * SBNSoftware/sbnanaobj Hlay initialisations #37 + +* sbnana (v09_39_01): + Using: + * sbnanaobj v09_17_07 + * ifdhc v2_5_18 + * cetbuildtools v8_18_09 + + Includes: + * SBNSoftware/sbnana Feature/lg nutools v3 12 00 #54 + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_41_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_41_00.md new file mode 100644 index 000000000..b256eb38c --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_41_00.md @@ -0,0 +1,49 @@ +--- +layout: page +title: sbncode_sbnana_v09_41_00 +toc: true +--- + +sbncode sbnana v09_41_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +23 December 2021 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +sbncode and sbnana (v09_41_00) weekly releases have been cut and distributed. + +* sbncode (v09_41_00): + + Using: + * larsoft v09_41_00 + * sbnobj v09_13_01 + * lardataobj v09_05_00 + * sbnanaobj v09_17_09 + + Includes: + * SBNSoftware/sbncode Greenlee pid update #222 + * SBNSoftware/sbncode feature/jzettle_pot_accounting_cafs_take2 #224 + * SBNSoftware/sbncode Correctly zero-initialize CAFMaker output files and trees in all cases #223 + * SBNSoftware/sbnanaobj feature/jzettle_pot_accounting_cafs_take2 #41 + * SBNSoftware/sbnanaobj Add the hdr.husk flag to support the ability to reduce files without losing track of their POT #40 + +* sbnana (v09_41_00): + + Using: + * sbnanaobj v09_17_09 + * SBNSoftware/sbnana Add logic for FileReducer #55 + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_00.md new file mode 100644 index 000000000..2ca09f2a5 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_00.md @@ -0,0 +1,45 @@ +--- +layout: page +title: sbncode_sbnana_v09_42_00 +toc: true +--- + +sbncode sbnana v09_42_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +14 January 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +sbncode and sbnana (v09_42_00) weekly releases have been cut and distributed. + +* sbncode (v09_42_00): + + Using: + * larsoft v09_42_00 + * sbnobj v09_13_02 + * lardataobj v09_05_01 + + +* sbnana (v09_42_00): + + Using: + * ifdhc v2_6_1 + + Includes: + * SBNSoftware/sbnana Move SRProxy and FlatRecord logic from sbnana to sbnanaobj#53 + + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_22_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_22_01.md new file mode 100644 index 000000000..6e43b9e5d --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_22_01.md @@ -0,0 +1,16 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +Hi all, + +Small fix in sbncode dependencies version numbering. + + +New release v09_22_01 is available. + + + +Miquel diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_24_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_24_00_01.md new file mode 100644 index 000000000..3395f8a92 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_24_00_01.md @@ -0,0 +1,26 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_24_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Patch release + +New features +--------------------------------------------------- +A patch releases of sbncode ( v09_24_00_01) has been tagged and released. +This includes: + + +sbncode: +using sbndaq-artdaq-core v0_07_06_01_of0 (#29) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_25_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_25_00.md new file mode 100644 index 000000000..cb3ac62ca --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_25_00.md @@ -0,0 +1,32 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_25_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Requested release + +New features +--------------------------------------------------- +A sbncode release (v09_25_00) has been tagged and released. + +This includes: +* sbncode: + + Using larsoft v09_25_00 + + Includes: New track calo skimmer module for ICARUS calibration stuff. #128 + +* sbnobj v09_11_12: + + Includes: New track calo skimmer module for ICARUS calibration stuff. #17 diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_26_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_26_01.md new file mode 100644 index 000000000..0f3898609 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_26_01.md @@ -0,0 +1,29 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode and sbnana v09_26_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_26_01) has been tagged and released. + +This includes: +* sbncode: + + Update to LArSoft v09_26_01 + + + no valid weights if StrictMode=false #144, Cleanup notebooks #148 diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_01.md new file mode 100644 index 000000000..ec50fe37d --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_01.md @@ -0,0 +1,31 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_27_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Patch release + +New features +--------------------------------------------------- +A patch release of sbncode (v09_27_00_01) has been tagged and released. + +This was for Fix to Missing FileEntry for sbnobj/Common/Calibration/TrackCaloSkimmerObj.h sbnobj PR #23 + + +But also includes already merged: +* sbncode (sbnobj): + + Refactor configs and products out of sbncode for MeVPrtl Event Generator #141 (#20) + + Stubs in ICARUS and with Space Charge #143 (#21) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_02.md new file mode 100644 index 000000000..c6dc6fa31 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_02.md @@ -0,0 +1,32 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_27_00_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_27_00_02) has been tagged and released. + +This includes: +* sbncode: + + Stubs in CAFMaker #145, Fill Objects for MeVPrtl in StandardRecord #146 + + + sbnanobj: + + new SRStub object and add to SRSliceRecoBranch #20, Fill Objects for MeVPrtl in StandardRecord #21 + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_00.md new file mode 100644 index 000000000..731e756e4 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_00.md @@ -0,0 +1,36 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_28_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_28_00) has been tagged and released. +This includes: +* sbncode: + + Update to LArsSoft v09_28_00 + + Simple-Flash Match#152 + + Improve bookeeping of not-candidate slices #157 + + Add missing definition for fmatch #158 + + Generalize CAFMaker#151 + + genie_xsec dependency to sbncode #154 + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_01.md new file mode 100644 index 000000000..fce36a7ac --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_01.md @@ -0,0 +1,31 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_28_01_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* patch release + +New features +--------------------------------------------------- + +We have just released a patch release for the SBN2021B production, which has the following updates: + +sbnanaobj (v09_16_13_01): +adding a missing g4 process #25 (https://github.com/SBNSoftware/sbnanaobj/pull/25) + +sbncode (v09_28_01_01): +Fixing SBND CAF maker fcl #167 (https://github.com/SBNSoftware/sbncode/pull/167) + + +These patches will be merge into develop shortly as well diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_02.md new file mode 100644 index 000000000..d9ece1a06 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_02.md @@ -0,0 +1,25 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_28_01_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* SBN2021B production patch release + +New features +--------------------------------------------------- + +A patch release of sbncode (v09_28_01_02) for SBN2021B production has been tagged and released. + +This release is based on larsoft v09_28_01_01 patch. + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_04.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_04.md new file mode 100644 index 000000000..e3c0856b9 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_04.md @@ -0,0 +1,35 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_28_04 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- +The weekly release of sbncode (v09_28_04 ) has been tagged and released. + +larsoft v09_28_04 +sbnobj v09_11_19 + +sbndaq_artdaq_core v0_07_09_of0 + + +And it includes (since last release): + +Update to v0_07_09_of0 of sbndaq_artdaq_core (requires icaruscode PR #253) + +Has the calo skimmer update (sbncode #166) for sbnd and icarus detector flags + +Has the removal of default constructor in CRTData in sbnobj (#25) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_05.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_05.md new file mode 100644 index 000000000..bf499aea5 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_05.md @@ -0,0 +1,25 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_28_05 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* weekly release + +New features +--------------------------------------------------- + +A weekly release of sbncode (v09_28_05) has been tagged and released. + +This release is based on larsoft v09_28_05 + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_29_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_29_00.md new file mode 100644 index 000000000..faa685a5e --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_29_00.md @@ -0,0 +1,25 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_29_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* weekly release + +New features +--------------------------------------------------- + +A weekly release of sbncode (v09_29_00) has been tagged and released. + +This release is based on larsoft v09_29_00. + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_31_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_31_00_01.md new file mode 100644 index 000000000..dbd585827 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_31_00_01.md @@ -0,0 +1,32 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_31_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* special release + +New features +--------------------------------------------------- + +The release of sbncode v09_31_00_01 following larsoft v09_31_00 release with the migration to art 3.09 mrb 5 and cetbuildtools 8 is finally out. + +Using: + larsoft v09_31_00 + sbnobj v09_12_00_01 + sbnanaobj v09_17_00_01 + sbndaq_artdaq_core v0_07_09of1 + + +This release also includes sbnobj PR #26 Feature/lynnt obj comm merged in between releases. + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_00.md new file mode 100644 index 000000000..839a3cc03 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_00.md @@ -0,0 +1,31 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_32_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Purpose +--------------------------------------------------- + +* weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_32_00) has been cut and distributed. + +Using: + larsoft v09_32_00 + sbnobj v09_12_02 + + +Includes: +SBNSoftware/sbncode Feature/lnguyen caloskimmer #173 + + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01.md new file mode 100644 index 000000000..99dc441f5 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01.md @@ -0,0 +1,34 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_32_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +8 October 2021 + +Purpose +--------------------------------------------------- +* weekly release + +New features +--------------------------------------------------- + +A weekly release of sbncode (v09_32_01) has been cut and distributed. + +Using: + larsoft v09_32_01 + sbnobj v09_12_03 (lardataobj v09_03_02) + + +Includes: +SBNSoftware/sbncode Demote excesively frequent message. Add TODO note #175 + diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01_01.md new file mode 100644 index 000000000..63af98567 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01_01.md @@ -0,0 +1,26 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbncode v09_32_01_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +11 October 2021 + +Purpose +--------------------------------------------------- +* patch release + +New features +--------------------------------------------------- +A patch release of sbncode (v09_32_01_01) has been cut and distributed. + +Using sbndaq_artdaq_core v0_07_09of2 diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_01.md new file mode 100644 index 000000000..71ed97e35 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_01.md @@ -0,0 +1,36 @@ +--- +layout: page +title: sbncode_v09_37_01_01 +toc: true +--- + +sbncode v09_37_01_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +26 November 2021 + +Purpose +--------------------------------------------------- +* SBN2021C production patch release + +New features +--------------------------------------------------- +A sbncode (v09_37_01_01) patch release for the SBN2021C production has been cut and distributed. + +* sbncode (v09_37_01_01): + + Using: + * sbnobj v09_12_09 + + PRs Included: + * SBNSoftware/sbnobj Added CRT Hit to anab::T0 assns #34 + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_02.md new file mode 100644 index 000000000..6d6fc476e --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_02.md @@ -0,0 +1,46 @@ +--- +layout: page +title: sbncode_v09_37_01_02 +toc: true +--- + +sbncode v09_37_01_02 (SBN2021C patch) Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +13 December 2021 + +Purpose +--------------------------------------------------- +* SBN2021C production patch release + +New features +--------------------------------------------------- +A sbncode (v09_37_01_02) patch release for the SBN2021C production has been cut and distributed. + +* sbncode (v09_37_01_02): + Using: + * larsoft v09_37_01_01 + * sbnobj v09_12_09 + * sbnanaobj v09_17_06_01 + + Includes: + * SBNSoftware/sbncode feature/cafmaker_flat_option#188 + * SBNSoftware/sbnanaobj Move SRProxy and FlatRecord logic from sbnana to sbnanaobj#32 + * SBNSoftware/sbncode BNBRetriever fix: don't write entries incrementally#207 + * SBNSoftware/sbnanaobj Ensure initialisations#33 + * SBNSoftware/sbncode Add another globalTree bail out condition for the case where the list of labels is empty#206 + * SBNSoftware/sbncode SBNEventWeight_fix bugs that slow down the code & of incorrect looping.#212 + * SBNSoftware/sbncode BNBRetriever fix: fill event number#208 + * SBNSoftware/sbncode adding missing geant processes to CAF#215 + * SBNSoftware/sbnanaobj adding missing GEANT processes to CAFs#36 + * SBNSoftware/sbncode Take the fIsRealData that was previously hard-coded to false and set ...#209 + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_03.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_03.md new file mode 100644 index 000000000..227cde869 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_03.md @@ -0,0 +1,43 @@ +--- +layout: page +title: sbncode_v09_37_01_03 +toc: true +--- + +sbncode v09_37_01_03 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +14 January 2022 + +Purpose +--------------------------------------------------- +* SBN2021C production patch release + +New features +--------------------------------------------------- +A sbncode (v09_37_01_03) patch release for the SBN2021C production has been cut and distributed. + +* sbncode (v09_37_01_03): + + Using: + * larsoft v09_37_01_01 + * sbnobj v09_12_09 + * sbnanaobj v09_17_06_02 + * cetbuildtools v8_18_05 + + Includes: + * SBNSoftware/sbnanaobj production CAF fix #42 + * SBNSoftware/sbncode production CAF fix #226 + * Revert CMakelists changes introduced in release/SBN2021C for later cetbuildtools version v8_18_09 + + + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_38_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_38_00.md new file mode 100644 index 000000000..61b872b88 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_38_00.md @@ -0,0 +1,34 @@ +--- +layout: page +title: sbncode_v09_38_00 +toc: true +--- + +sbncode v09_38_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +6 December 2021 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_38_00) following larsoft release has been cut and distributed. + +* sbncode (v09_38_00): + Using: + * larsoft v09_38_00 + * sbnobj v09_12_10 + * lardataobj v09_03_06 + + +Extra info +--------------------------------------------------- diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_40_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_40_00.md new file mode 100644 index 000000000..e60c41ba2 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_40_00.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbncode_v09_40_00 +toc: true +--- + +sbncode v09_40_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +17 December 2021 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A sbncode (v09_40_00) weekly release has been cut and distributed. + + * sbncode (v09_40_00): + Using: + * larsoft v09_40_00 + * sbnanaobj v09_17_08 + + Includes: + * SBNSoftware/sbncode merge production developments in SBN2021C branch #217 + * SBNSoftware/sbnanaobj merge production developments in SBN2021C branch #38 + * SBNSoftware/sbncode New FluxReader Interface to Read BooNE Tuple Files #213 + +Extra info +--------------------------------------------------- From 31a9e95f6b7c57f65e74730950cdab3e63e7b3d4 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 12:52:30 +0000 Subject: [PATCH 0026/1437] update release notes link --- AnalysisInfrastructure/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/index.md b/AnalysisInfrastructure/index.md index 977814c64..5c896696a 100644 --- a/AnalysisInfrastructure/index.md +++ b/AnalysisInfrastructure/index.md @@ -70,7 +70,7 @@ Meetings: every other Friday at 9:00 CT ## Important Information for Developers -### [Release Notes](Releases/List_of_SBN_code_releases.md) +### [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) Our currently tagged release is VNN_YY_XX. From ccf4ad29a655392fa153b38ede853dc7488e6a66 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:03:37 +0000 Subject: [PATCH 0027/1437] Update RM team info --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 8fa5636a4..b4ac0227b 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -13,7 +13,7 @@ See the [Code Development](https://sbnsoftware.github.io/AnalysisInfrastructure/ List of `sbncode` releases ------------------------------------------------------------------------ -**Release managment team**: [Miquel Nebot-Guinot, Wes Ketchum, Joseph Zennamo, Patrick Green and Tracy Usher](mailto:miquel.nebot@ed.ac.uk,wketchum@fnal.gov,jaz8600@fnal.gov) +**Release managment team**: [Miquel Nebot-Guinot, Wes Ketchum, Joseph Zennamo, Patrick Green, Tracy Usher, Sergey Martynenko and Matt Rosenberg](mailto:miquel.nebot@ed.ac.uk,wketchum@fnal.gov,jaz8600@fnal.gov,patrick.green-3@postgrad.manchester.ac.uk,usher@slac.stanford.edu,smartynen@bnl.gov,Matthew.Rosenberg@tufts.edu) These are the releases tagged until now: From 7fd18b204e0a37ba9a374e150b4487e994e09254 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:06:31 +0000 Subject: [PATCH 0028/1437] add RM management team info --- AnalysisInfrastructure/ReleaseManagement/rm_main.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_main.md b/AnalysisInfrastructure/ReleaseManagement/rm_main.md index 445bd3769..1dd4ed56a 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_main.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_main.md @@ -40,5 +40,9 @@ All PRs for all flavours are CI tested (LArSoft, SBND, ICARUS): And full stack tested before released (Jenkins). + # Release management for managers [Release management instructions](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/rm_instructions) + +**Release managment team**: [Miquel Nebot-Guinot, Wes Ketchum, Joseph Zennamo, Patrick Green, Tracy Usher, Sergey Martynenko and Matt Rosenberg](mailto:miquel.nebot@ed.ac.uk,wketchum@fnal.gov,jaz8600@fnal.gov,patrick.green-3@postgrad.manchester.ac.uk,usher@slac.stanford.edu,smartynen@bnl.gov,Matthew.Rosenberg@tufts.edu) + From 3a3eb04d89d16bbf685946c785fe4260dfb12a96 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:07:40 +0000 Subject: [PATCH 0029/1437] keep only release list --- .../Releases/List_of_SBN_code_releases.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index b4ac0227b..8d3d13c43 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -4,17 +4,9 @@ title: List of SBN code releases --- - -SBN Analysis Infrastructure Group -================================================================ - -See the [Code Development](https://sbnsoftware.github.io/AnalysisInfrastructure/how-to-develop) section on How To Add Features, Fix Bugs, or Otherwise Develop. - List of `sbncode` releases ------------------------------------------------------------------------ -**Release managment team**: [Miquel Nebot-Guinot, Wes Ketchum, Joseph Zennamo, Patrick Green, Tracy Usher, Sergey Martynenko and Matt Rosenberg](mailto:miquel.nebot@ed.ac.uk,wketchum@fnal.gov,jaz8600@fnal.gov,patrick.green-3@postgrad.manchester.ac.uk,usher@slac.stanford.edu,smartynen@bnl.gov,Matthew.Rosenberg@tufts.edu) - These are the releases tagged until now: | Version | Notes | Detailed Notes From e00a4d7d0364ae780fd5bb2947d43081c6618595 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:11:47 +0000 Subject: [PATCH 0030/1437] add code dev instructions link --- AnalysisInfrastructure/ReleaseManagement/rm_main.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_main.md b/AnalysisInfrastructure/ReleaseManagement/rm_main.md index 1dd4ed56a..db82dc30a 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_main.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_main.md @@ -4,6 +4,9 @@ title: Release Management toc: true --- +Looking for how to get your piece of code in, see the [Code Development](https://sbnsoftware.github.io/AnalysisInfrastructure/how-to-develop) instructions. + + # Software Release Management ### Charge: From 0ac8fa6cb5ab96057f8f52ddd81fa549f0c65e13 Mon Sep 17 00:00:00 2001 From: miquelnebot Date: Thu, 10 Mar 2022 07:23:45 -0600 Subject: [PATCH 0031/1437] update release list link --- .../Releases/List_of_SBN_code_releases.md | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 8d3d13c43..0adf24300 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -1,4 +1,4 @@ ---- +M%--- layout: page title: List of SBN code releases --- @@ -11,53 +11,53 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- -|`v09_42_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_42_00.md) -|`v09_37_01_03` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_03.md) -|`v09_41_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_41_00.md) -|`v09_40_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_40_00.md) -|`v09_37_01_02` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_02.md) -|`v09_39_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_39_01.md) -|`v09_38_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_38_00.md) -|`v09_37_01_01` | 'sbncode' SBN2021C production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_37_01_01.md) -| `SBN2021C ` | 'sbncode/sbnana' SBN2021C production release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021C.md) -|`v09_36_00_01` | 'sbncode/sbnana' patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00_01.md) -|`v09_36_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_36_00.md) -|`v09_35_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_01.md) -|`v09_35_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_35_00.md) -|`v09_34_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_34_00.md) -|`v09_33_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_33_00.md) -|`v09_31_00_01` | 'sbnana' special (migration) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbnana_v09_31_00_01.md) -|`v09_32_01_01` | 'sbncode' patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_01_01.md) -|`v09_32_01` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_01.md) -|`v09_32_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_32_00.md) -|`v09_31_00_01` | 'sbncode' special (migration) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_31_00_01.md) -|`v09_29_00` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_29_00.md) -|`v09_28_01_02` | 'sbncode' production patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_01_02.md) -|`v09_28_05` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_05.md) -|`v09_28_04` | 'sbncode' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_04.md) -|`v09_28_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_28_02.md) -|`v09_28_01_01` | 'sbncode' production(Aug13) patch release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_01_01.md) -|`SBN2021B` | 'sbncode/sbnana' production (Aug13) release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_SBN2021B.md) -|`v09_28_00` | 'sbncode/sbnana' Weekly release |[Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_28_00.md) -|`v09_27_00_02` | 'sbncode' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_27_00_02.md) -|`v09_27_00_01` | 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_27_00_01.md) -|`v09_27_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_27_00.md) -|`v09_26_01` | 'sbncode' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_26_01.md) -|`v09_26_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_26_00.md) -|`v09_25_00_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_25_00_00.md) -|`v09_25_00` | 'sbncode' requested release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_25_00.md) -|`v09_24_02_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_02_00.md) -|`v09_24_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_01_00.md) -|`v09_24_00_01`| 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_24_00_01.md) -|`v09_24_00` | 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_24_00.md) -|`v09_23_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_23_01_00.md) -|`v09_22_03_01`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_01.md) -|`v09_22_03_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_03_00.md) -|`v09_22_02_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_02_00.md) -|`v09_22_01_01`| 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_07`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_01_01.md) -|`v09_22_01` | 'sbncode' patch release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_v09_22_01.md) -|`v09_22_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_06`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode_sbnana_v09_22_00.md) -|`v09_21_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_05`) | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode%20sbnana%20Releases%20v09_21_00.md) +|`v09_42_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_00.md) +|`v09_37_01_03` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_03.md) +|`v09_41_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_41_00.md) +|`v09_40_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_40_00.md) +|`v09_37_01_02` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_02.md) +|`v09_39_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_39_01.md) +|`v09_38_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_38_00.md) +|`v09_37_01_01` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_01.md) +| `SBN2021C ` | 'sbncode/sbnana' SBN2021C production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021C.md) +|`v09_36_00_01` | 'sbncode/sbnana' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00_01.md) +|`v09_36_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00.md) +|`v09_35_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_01.md) +|`v09_35_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_00.md) +|`v09_34_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_34_00.md) +|`v09_33_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_33_00.md) +|`v09_31_00_01` | 'sbnana' special (migration) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_31_00_01.md) +|`v09_32_01_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01_01.md) +|`v09_32_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01.md) +|`v09_32_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_00.md) +|`v09_31_00_01` | 'sbncode' special (migration) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_31_00_01.md) +|`v09_29_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_29_00.md) +|`v09_28_01_02` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_02.md) +|`v09_28_05` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_05.md) +|`v09_28_04` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_04.md) +|`v09_28_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_28_02.md) +|`v09_28_01_01` | 'sbncode' production(Aug13) patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_01.md) +|`SBN2021B` | 'sbncode/sbnana' production (Aug13) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021B.md) +|`v09_28_00` | 'sbncode/sbnana' Weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_00.md) +|`v09_27_00_02` | 'sbncode' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_02.md) +|`v09_27_00_01` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_01.md) +|`v09_27_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_27_00.md) +|`v09_26_01` | 'sbncode' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_26_01.md) +|`v09_26_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_26_00.md) +|`v09_25_00_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_25_00_00.md) +|`v09_25_00` | 'sbncode' requested release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_25_00.md) +|`v09_24_02_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_02_00.md) +|`v09_24_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_01_00.md) +|`v09_24_00_01`| 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_24_00_01.md) +|`v09_24_00` | 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_00.md) +|`v09_23_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_23_01_00.md) +|`v09_22_03_01`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_01.md) +|`v09_22_03_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_00.md) +|`v09_22_02_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_02_00.md) +|`v09_22_01_01`| 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_07`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_01_01.md) +|`v09_22_01` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_22_01.md) +|`v09_22_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_06`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_00.md) +|`v09_21_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_05`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode%20sbnana%20Releases%20v09_21_00.md) |`v09_20_00` | Weekly release | [Release Notes]() -|`v09_19_00_02`| Workshop release | [Release Notes](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/AnalysisInfrastructure/Releases/sbncode%20Releases%20v09_19_00_02%2C%20and%20v09_20_00.md) +|`v09_19_00_02`| Workshop release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode%20Releases%20v09_19_00_02%2C%20and%20v09_20_00.md) From 149d070c33b244308d108ec286ac4892147909eb Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:30:46 +0000 Subject: [PATCH 0032/1437] Create sbncode_sbnana_v09_42_01.md --- .../Releases/sbncode_sbnana_v09_42_01.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01.md new file mode 100644 index 000000000..14e2ee139 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01.md @@ -0,0 +1,44 @@ +--- +layout: page +title: sbncode_sbnana_v09_42_01 +toc: true +--- + +sbncode sbnana v09_42_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +26 January 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +sbncode and sbnana (v09_42_01) weekly releases have been cut and distributed. + +* sbncode (v09_42_01): + + Using: + * larsoft v09_42_01 + * sbnobj v09_13_03 + * sbnanaobj v09_17_10 + + Includes: + * SBNSoftware/sbncode OpT0Finder with new LArG4 #227 + +* sbnana (v09_42_01): + + Using: + * sbnanaobj v09_17_10 + + + +Extra info +--------------------------------------------------- From 8d95588cc0223a0ce27df46246244a33446b20de Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:36:13 +0000 Subject: [PATCH 0033/1437] Create sbncode_sbnana_v09_42_02.md --- .../Releases/sbncode_sbnana_v09_42_02.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02.md new file mode 100644 index 000000000..c8d0b96ae --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02.md @@ -0,0 +1,42 @@ +--- +layout: page +title: sbncode_sbnana_v09_42_02 +toc: true +--- + +sbncode sbnana v09_42_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +03 February 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +sbncode and sbnana (v09_42_02) weekly releases have been cut and distributed. + +* sbncode (v09_42_02): + + Using: + * larsoft v09_42_02 + * sbnobj v09_13_04 + * sbnanaobj v09_17_11 + * cetbuildtools v8_19_02 + +* sbnana (v09_42_02): + + Using: + * sbnanaobj v09_17_11 + * cetbuildtools v8_19_02 + + +Extra info +--------------------------------------------------- From 002a370321eb4888264f4c7e713d610969e166b0 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:39:20 +0000 Subject: [PATCH 0034/1437] Create sbnana_v09_37_01_01.md --- .../Releases/sbnana_v09_37_01_01.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01.md new file mode 100644 index 000000000..ee5ae1259 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01.md @@ -0,0 +1,33 @@ +--- +layout: page +title: sbnana_v09_37_01_01 +toc: true +--- + +sbnana v09_37_01_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +03 February 2022 + +Purpose +--------------------------------------------------- +* Production patch release + +New features +--------------------------------------------------- +sbnana (v09_37_01_01) SBN2021C production patch release has been cut and distributed, to be used for the analysis of the SBN2021C production. + +* sbnana (v09_37_01_01): + + Using: + * sbnanaobj v09_17_06_02 + + +Extra info +--------------------------------------------------- From 7ab52f9b1d775303d803cbbe75b35c43808eebdd Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:42:03 +0000 Subject: [PATCH 0035/1437] Create sbncode_v09_42_03.md --- .../Releases/sbncode_v09_42_03.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03.md new file mode 100644 index 000000000..de6717dff --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03.md @@ -0,0 +1,36 @@ +--- +layout: page +title: sbncode_v09_42_03 +toc: true +--- + +sbncode v09_42_03 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +11 February 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_42_03) has been cut and distributed. + +* sbncode (v09_42_03): + + Using: + * larsoft v09_42_03 + * sbndaq_artdaq_core v1_00_00of1 + + + + +Extra info +--------------------------------------------------- From 6edc4a06b6bb034030237eca62d9624203e15021 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:46:29 +0000 Subject: [PATCH 0036/1437] Create sbncode_sbnana_v09_42_04.md --- .../Releases/sbncode_sbnana_v09_42_04.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04.md new file mode 100644 index 000000000..3f3c87636 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04.md @@ -0,0 +1,49 @@ +--- +layout: page +title: sbncode_sbnana_v09_42_04 +toc: true +--- + +sbncode_sbnana_v09_42_04 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +18 February 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_42_04) has been cut and distributed. + +* sbncode (v09_42_04): + + Using: + * larsoft v09_42_04 + * sbnanaobj v09_17_12 + * srproxy v00.33 + + Includes: + * SBNSoftware/sbnanaobj Bump srproxy version #46 + +* sbnana (v09_42_04): + + Using: + * sbnanaobj v09_17_12 + * srproxy v00.33 + + Includes: + * SBNSoftware/sbnana Fix outdated help text in concat_cafs #58 + * SBNSoftware/sbnana Introduce some unfolding functions #48 + + + +Extra info +--------------------------------------------------- From bee30e05a8e676f28293f72567c67ff35401797f Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:49:22 +0000 Subject: [PATCH 0037/1437] Create sbncode_sbnana_v09_43_00.md --- .../Releases/sbncode_sbnana_v09_43_00.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00.md new file mode 100644 index 000000000..f6a9b5828 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00.md @@ -0,0 +1,50 @@ +--- +layout: page +title: sbncode_sbnana_v09_43_00 +toc: true +--- + +sbncode_sbnana_v09_43_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +25 February 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_43_00) has been cut and distributed. + +* sbncode (v09_43_00): + + Using: + * larsoft v09_43_00 + * sbnobj v09_13_05 + * lardataobj v09_06_00 + * sbndaq_artdaq_core v1_00_00of2 + + Includes: + * SBNSoftware/sbnobj #43 Feature/vmeddage tof studies + * SBNSoftware/sbndaq-artdaq-core #46 Fragment ID needs to be 16 bit + * SBNSoftware/sbncode #242 Change for v09_43_00 + * SBNSoftware/sbncode #235 Update Calo-Skimmer + * SBNSoftware/sbnobj #42 Clarify hit-position information. + + +* sbnana (v09_43_00): + + Includes: + * SBNSoftware/sbnana #60 Use $SAM_EXPERIMENT environment variable + + + +Extra info +--------------------------------------------------- From 9896db71630ab76f7da5874facb2f7e1c1deb083 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:51:26 +0000 Subject: [PATCH 0038/1437] Create sbncode_sbnana_v09_44_00.md --- .../Releases/sbncode_sbnana_v09_44_00.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00.md new file mode 100644 index 000000000..fd074726b --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00.md @@ -0,0 +1,42 @@ +--- +layout: page +title: sbncode_sbnana_v09_44_00 +toc: true +--- + +sbncode_sbnana_v09_44_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +04 March 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_44_00) has been cut and distributed. + +* sbncode (v09_44_00): + + Using: + * larsoft v09_44_00 + + Includes: + * SBNSoftware/sbncode Change Nominal Higgs Portal Mixing Angle to 5e-5 #243 + +* sbnana (v09_44_00): + +Using: + * ifdhc v2_6_2 + + + +Extra info +--------------------------------------------------- From a85b3be7b20a6a49d31885ecea154631ba3a09a9 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:54:18 +0000 Subject: [PATCH 0039/1437] Create sbncode_v09_44_00_01.md --- .../Releases/sbncode_v09_44_00_01.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01.md new file mode 100644 index 000000000..5e3cef310 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01.md @@ -0,0 +1,39 @@ +--- +layout: page +title: sbncode_v09_44_00_01 +toc: true +--- + +sbncode_v09_44_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +07 March 2022 + +Purpose +--------------------------------------------------- +* Patch release + +New features +--------------------------------------------------- +A patch release of sbncode (v09_44_00_01) has been cut and distributed. + +* sbncode (v09_44_00_01): + + Using: + * sbnobj v09_13_06 + + Includes: + * SBNSoftware/sbnobj Added fields to CRTData struct #40 + + + + + +Extra info +--------------------------------------------------- From a84c3e4b109ead3cf80ff33ef4adc787600d227f Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 13:54:49 +0000 Subject: [PATCH 0040/1437] Update List_of_SBN_code_releases.md --- .../Releases/List_of_SBN_code_releases.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 0adf24300..72e3d2e8a 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -1,4 +1,4 @@ -M%--- +--- layout: page title: List of SBN code releases --- @@ -11,6 +11,14 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_44_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00_01.md) +|`v09_44_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00.md) +|`v09_43_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00.md) +|`v09_42_04` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04.md) +|`v09_42_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_03.md) +|`v09_37_01_01` | 'sbnana' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01.md) +|`v09_42_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02.md) +|`v09_42_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01.md) |`v09_42_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_00.md) |`v09_37_01_03` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_03.md) |`v09_41_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_41_00.md) From ca29e6cfb7a413ea2cc739415dd0f1220f78f82a Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 14:11:48 +0000 Subject: [PATCH 0041/1437] fix some links --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 72e3d2e8a..27293186f 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,11 +11,11 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- -|`v09_44_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00_01.md) +|`v09_44_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01) |`v09_44_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00.md) |`v09_43_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00.md) |`v09_42_04` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04.md) -|`v09_42_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_03.md) +|`v09_42_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03.md) |`v09_37_01_01` | 'sbnana' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01.md) |`v09_42_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02.md) |`v09_42_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01.md) From 7afd7174e066bf5fffb3cbd23dd17cff35935759 Mon Sep 17 00:00:00 2001 From: miquelnebot Date: Thu, 10 Mar 2022 08:13:17 -0600 Subject: [PATCH 0042/1437] update release list links --- .../Releases/List_of_SBN_code_releases.md | 110 +++++++++--------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 27293186f..38b88121c 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -12,60 +12,60 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- |`v09_44_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01) -|`v09_44_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00.md) -|`v09_43_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00.md) -|`v09_42_04` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04.md) -|`v09_42_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03.md) -|`v09_37_01_01` | 'sbnana' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01.md) -|`v09_42_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02.md) -|`v09_42_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01.md) -|`v09_42_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_00.md) -|`v09_37_01_03` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_03.md) -|`v09_41_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_41_00.md) -|`v09_40_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_40_00.md) -|`v09_37_01_02` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_02.md) -|`v09_39_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_39_01.md) -|`v09_38_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_38_00.md) -|`v09_37_01_01` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_01.md) -| `SBN2021C ` | 'sbncode/sbnana' SBN2021C production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021C.md) -|`v09_36_00_01` | 'sbncode/sbnana' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00_01.md) -|`v09_36_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00.md) -|`v09_35_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_01.md) -|`v09_35_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_00.md) -|`v09_34_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_34_00.md) -|`v09_33_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_33_00.md) -|`v09_31_00_01` | 'sbnana' special (migration) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_31_00_01.md) -|`v09_32_01_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01_01.md) -|`v09_32_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01.md) -|`v09_32_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_00.md) -|`v09_31_00_01` | 'sbncode' special (migration) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_31_00_01.md) -|`v09_29_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_29_00.md) -|`v09_28_01_02` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_02.md) -|`v09_28_05` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_05.md) -|`v09_28_04` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_04.md) -|`v09_28_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_28_02.md) -|`v09_28_01_01` | 'sbncode' production(Aug13) patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_01.md) -|`SBN2021B` | 'sbncode/sbnana' production (Aug13) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021B.md) -|`v09_28_00` | 'sbncode/sbnana' Weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_00.md) -|`v09_27_00_02` | 'sbncode' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_02.md) -|`v09_27_00_01` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_01.md) -|`v09_27_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_27_00.md) -|`v09_26_01` | 'sbncode' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_26_01.md) -|`v09_26_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_26_00.md) -|`v09_25_00_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_25_00_00.md) -|`v09_25_00` | 'sbncode' requested release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_25_00.md) -|`v09_24_02_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_02_00.md) -|`v09_24_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_01_00.md) -|`v09_24_00_01`| 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_24_00_01.md) -|`v09_24_00` | 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_00.md) -|`v09_23_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_23_01_00.md) -|`v09_22_03_01`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_01.md) -|`v09_22_03_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_00.md) -|`v09_22_02_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_02_00.md) -|`v09_22_01_01`| 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_07`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_01_01.md) -|`v09_22_01` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_22_01.md) -|`v09_22_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_06`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_00.md) -|`v09_21_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_05`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode%20sbnana%20Releases%20v09_21_00.md) +|`v09_44_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00) +|`v09_43_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00) +|`v09_42_04` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04) +|`v09_42_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03) +|`v09_37_01_01` | 'sbnana' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01) +|`v09_42_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02) +|`v09_42_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01) +|`v09_42_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_00) +|`v09_37_01_03` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_03) +|`v09_41_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_41_00) +|`v09_40_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_40_00) +|`v09_37_01_02` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_02) +|`v09_39_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_39_01) +|`v09_38_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_38_00) +|`v09_37_01_01` | 'sbncode' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_01_01) +| `SBN2021C ` | 'sbncode/sbnana' SBN2021C production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021C) +|`v09_36_00_01` | 'sbncode/sbnana' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00_01) +|`v09_36_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_36_00) +|`v09_35_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_01) +|`v09_35_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_35_00) +|`v09_34_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_34_00) +|`v09_33_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_33_00) +|`v09_31_00_01` | 'sbnana' special (migration) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_31_00_01) +|`v09_32_01_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01_01) +|`v09_32_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_01) +|`v09_32_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_32_00) +|`v09_31_00_01` | 'sbncode' special (migration) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_31_00_01) +|`v09_29_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_29_00) +|`v09_28_01_02` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_02) +|`v09_28_05` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_05) +|`v09_28_04` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_04) +|`v09_28_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_28_02) +|`v09_28_01_01` | 'sbncode' production(Aug13) patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_01_01) +|`SBN2021B` | 'sbncode/sbnana' production (Aug13) release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_SBN2021B) +|`v09_28_00` | 'sbncode/sbnana' Weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_28_00) +|`v09_27_00_02` | 'sbncode' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_02) +|`v09_27_00_01` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_27_00_01) +|`v09_27_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_27_00) +|`v09_26_01` | 'sbncode' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_26_01) +|`v09_26_00` | 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_26_00) +|`v09_25_00_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_25_00_00) +|`v09_25_00` | 'sbncode' requested release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_25_00) +|`v09_24_02_00`| 'sbncode'/'sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_02_00) +|`v09_24_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_01_00) +|`v09_24_00_01`| 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_24_00_01) +|`v09_24_00` | 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_24_00) +|`v09_23_01_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_23_01_00) +|`v09_22_03_01`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_01) +|`v09_22_03_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_03_00) +|`v09_22_02_00`| 'sbncode/sbnana' Weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_02_00) +|`v09_22_01_01`| 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_07`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_01_01) +|`v09_22_01` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_22_01) +|`v09_22_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_06`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_22_00) +|`v09_21_00` | 'sbncode/sbnana' Weekly release ('sbnobj' `v09_11_05`) | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode%20sbnana%20Releases%20v09_21_00) |`v09_20_00` | Weekly release | [Release Notes]() -|`v09_19_00_02`| Workshop release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode%20Releases%20v09_19_00_02%2C%20and%20v09_20_00.md) +|`v09_19_00_02`| Workshop release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode%20Releases%20v09_19_00_02%2C%20and%20v09_20_00xs) From 0468d96e701d331eaa77d75018808445e7fcecc8 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 14:55:29 +0000 Subject: [PATCH 0043/1437] Add production release instructions --- .../ReleaseManagement/rm_instructions.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md b/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md index 368676e08..35bede493 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md @@ -77,3 +77,24 @@ from `ScisoftScripts` folder. This will fetch the build artifacts (tarballs and ### Notify and distribute Release notes: Send/post release notes (currently email/slack with changes) and let SBND and ICARUS release distributors know. +## Production release + + Production release branches are meant to be mantained so, don't close the relase branch when it's created. Use: + + git flow release finish -k + +For keeping up a poduction branch, when a pacth is needed: + +1). Checkout release branch from git, use git fetch and git switch to get in non-detached head: + + git fetch origin release/SBN2021C + git switch release/SBN2021C + +2). Merge any updates. Note: PRs can be directed to merge into this branch instead of develop. +3). Bump version numbers and push updated branch for use on Jenkins as normal. +4). Create new tag (from within release branch) and push it: + + git tag -a v09_37_01_01 -m "Version v09_37_01_01, patch release for SBN2021C" + git push --tags + + 5). Distrubute it as usual. From 86d7dd8650abc21b3cfca6d8c9cd69e3a8b22426 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Mar 2022 15:10:50 +0000 Subject: [PATCH 0044/1437] add trouble shooting and useful commands --- .../ReleaseManagement/rm_instructions.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md b/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md index 35bede493..c27085809 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md @@ -98,3 +98,39 @@ For keeping up a poduction branch, when a pacth is needed: git push --tags 5). Distrubute it as usual. + + +## Trouble shooting, useful git procedures (TO BE UPDATED) + +### Trouble shooting cvmfs/scisoft publications + * delete manualy + * re-install + +NOTE that the cvmfs publish tag is not the same as the release tag. cvmfs will complain about a tag already used. +```bash +cvmfs_server publish -m "Publication message" -a 09.41.00 sbn.opensciencegrid.org +Tag name '09.41.00' is already in use. +``` +just increment an extra number each time you need to update +```bash +cvmfs_server publish -m "Published sbn 09.41.00.00" -a 09.41.00.00 sbn.opensciencegrid.org +Processing changes... +``` + +### Create a tag from a tag + +if branch a the same stage just creatre a release in GitHub with the tag name from the branch. + - From past versions : + git fetch --all --tags + git checkout tags/SBN2021C -b release/v09_12_08 + git log --oneline --graph + git tag -a v09_12_08 -m "Version v09_12_08, production release SBN2021C" + git push --tags + + +### Cherry picking commits for patch/fix + +mrb g sbnanaobj@v09_17_06_01  +git checkout -b feature/miquelnebot_prodCAFfix +git cherry-pick dedb4687017d111bb938f09ec5fbec7bdd7a3516 +git push origin feature/miquelnebot_prodCAFfix  From 106f0495f840ab18547e68eb7f167987651d04bc Mon Sep 17 00:00:00 2001 From: jzennamo Date: Fri, 11 Mar 2022 10:58:43 -0600 Subject: [PATCH 0045/1437] Update index.md --- AnalysisInfrastructure/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AnalysisInfrastructure/index.md b/AnalysisInfrastructure/index.md index 5c896696a..d770bcb4e 100644 --- a/AnalysisInfrastructure/index.md +++ b/AnalysisInfrastructure/index.md @@ -10,6 +10,8 @@ We'll use this wiki page for tracking group goals, progress, and release informa [List of open issues](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3ASBNSoftware+archived%3Afalse) ([and no assigned project](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3ASBNSoftware+archived%3Afalse+no%3Aproject)) +### [Production Release Glossary](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/prod_gloss) + ## Topic Groups Each of these sgroups are charged with defining and implement common SBN-wide solutions. Please find an organization chart [here](sbnai_orgchart.md). From 679231850e2a1ea4dee4e6642ab69d9fc6b3a288 Mon Sep 17 00:00:00 2001 From: jzennamo Date: Fri, 11 Mar 2022 11:01:24 -0600 Subject: [PATCH 0046/1437] Create prod_gloss.md --- .../ReleaseManagement/prod_gloss.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/prod_gloss.md diff --git a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md new file mode 100644 index 000000000..26fc0510c --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md @@ -0,0 +1,21 @@ +--- +layout: page +title: SBN Production Release Glossary +subtitle: Describes the names and goals of production releases +description: +hero_height: is-medium +# menubar: sbnprod_menu +toc: true +toc_title: SBN Production Contents +--- + + + +SBN Production Release Glossary +========================================== + +2021B + +2021C + +2022A From 44f925365bc84d8668bc7ba2290a104a159ac61b Mon Sep 17 00:00:00 2001 From: jzennamo Date: Fri, 11 Mar 2022 11:05:41 -0600 Subject: [PATCH 0047/1437] Update prod_gloss.md --- .../ReleaseManagement/prod_gloss.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md index 26fc0510c..c5ad01db9 100644 --- a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md +++ b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md @@ -1,21 +1,21 @@ ---- -layout: page -title: SBN Production Release Glossary -subtitle: Describes the names and goals of production releases -description: -hero_height: is-medium -# menubar: sbnprod_menu -toc: true -toc_title: SBN Production Contents ---- +#SBN Production Release Glossary +========================================== +## Production SBN 2021C (December, 2021) +### Main purpose: Test release for final production campaign to be launched for 2022 conference season -SBN Production Release Glossary -========================================== +* Critical updates in Geant4 interfaces and charge/light simulation model and CRT simulation +* Updates in ICARUS noise model and signal processing +* New Beyond Standard Model physics simulation models +* Tuning of high-level reconstruction and analysis interfaces -2021B +## Production SBN 2022A (pending) -2021C +### Final production campaign to be launched for 2022 conference season; support ICARUS first neutrino data and ICARUS+SBND simulation, and SBND commissioning samples -2022A +* See list of SBN 2021C +* Improved tuning of PMT reconstruction in ICARUS +* Improved ICARUS TPC simulation +* Add in side and top panel CRT to ICARUS data reconstruction +* Improved simulation speed and memory usage in latest LArG4 release From d91bd95d59e536b1d6834326018c2ae132873394 Mon Sep 17 00:00:00 2001 From: jzennamo Date: Fri, 11 Mar 2022 11:06:15 -0600 Subject: [PATCH 0048/1437] Update prod_gloss.md --- AnalysisInfrastructure/ReleaseManagement/prod_gloss.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md index c5ad01db9..8bdaa2531 100644 --- a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md +++ b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md @@ -1,4 +1,4 @@ -#SBN Production Release Glossary +# SBN Production Release Glossary ========================================== ## Production SBN 2021C (December, 2021) From 9cb47848e43cdb47d6e100cff5454f3882ae99b2 Mon Sep 17 00:00:00 2001 From: jzennamo Date: Fri, 11 Mar 2022 11:08:03 -0600 Subject: [PATCH 0049/1437] Update prod_gloss.md --- AnalysisInfrastructure/ReleaseManagement/prod_gloss.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md index 8bdaa2531..87bdc4893 100644 --- a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md +++ b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md @@ -1,6 +1,10 @@ # SBN Production Release Glossary ========================================== +[List of availible samples](https://sbnsoftware.github.io/sbn/sbnprod_wiki/sample) + +========================================== + ## Production SBN 2021C (December, 2021) ### Main purpose: Test release for final production campaign to be launched for 2022 conference season From d10bb762159ed96978161f19d835294a9cb4cc0b Mon Sep 17 00:00:00 2001 From: jzennamo Date: Fri, 11 Mar 2022 11:10:04 -0600 Subject: [PATCH 0050/1437] Update prod_gloss.md --- .../ReleaseManagement/prod_gloss.md | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md index 87bdc4893..d861af052 100644 --- a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md +++ b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md @@ -5,21 +5,23 @@ ========================================== -## Production SBN 2021C (December, 2021) +## Production SBN 2022A (pending) -### Main purpose: Test release for final production campaign to be launched for 2022 conference season + ### Final production campaign to be launched for 2022 conference season; support ICARUS first neutrino data and ICARUS+SBND simulation, and SBND commissioning samples -* Critical updates in Geant4 interfaces and charge/light simulation model and CRT simulation -* Updates in ICARUS noise model and signal processing -* New Beyond Standard Model physics simulation models -* Tuning of high-level reconstruction and analysis interfaces + * See list of SBN 2021C + * Improved tuning of PMT reconstruction in ICARUS + * Improved ICARUS TPC simulation + * Add in side and top panel CRT to ICARUS data reconstruction + * Improved simulation speed and memory usage in latest LArG4 release -## Production SBN 2022A (pending) -### Final production campaign to be launched for 2022 conference season; support ICARUS first neutrino data and ICARUS+SBND simulation, and SBND commissioning samples +## Production SBN 2021C (December, 2021) + + ### Main purpose: Test release for final production campaign to be launched for 2022 conference season + + * Critical updates in Geant4 interfaces and charge/light simulation model and CRT simulation + * Updates in ICARUS noise model and signal processing + * New Beyond Standard Model physics simulation models + * Tuning of high-level reconstruction and analysis interfaces -* See list of SBN 2021C -* Improved tuning of PMT reconstruction in ICARUS -* Improved ICARUS TPC simulation -* Add in side and top panel CRT to ICARUS data reconstruction -* Improved simulation speed and memory usage in latest LArG4 release From 549948259779733fe9e6905bbda54a393d7fc6bb Mon Sep 17 00:00:00 2001 From: jzennamo Date: Fri, 11 Mar 2022 11:11:36 -0600 Subject: [PATCH 0051/1437] Update prod_gloss.md --- AnalysisInfrastructure/ReleaseManagement/prod_gloss.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md index d861af052..0fdfdb489 100644 --- a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md +++ b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md @@ -9,6 +9,7 @@ ### Final production campaign to be launched for 2022 conference season; support ICARUS first neutrino data and ICARUS+SBND simulation, and SBND commissioning samples +Major updates in this release: * See list of SBN 2021C * Improved tuning of PMT reconstruction in ICARUS * Improved ICARUS TPC simulation @@ -20,6 +21,7 @@ ### Main purpose: Test release for final production campaign to be launched for 2022 conference season +Major updates in this release: * Critical updates in Geant4 interfaces and charge/light simulation model and CRT simulation * Updates in ICARUS noise model and signal processing * New Beyond Standard Model physics simulation models From 8f6763d7ff3ebe2c254e500d730dd83dcb4d40ec Mon Sep 17 00:00:00 2001 From: jzennamo Date: Fri, 11 Mar 2022 11:14:09 -0600 Subject: [PATCH 0052/1437] Update prod_gloss.md --- .../ReleaseManagement/prod_gloss.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md index 0fdfdb489..daac545f6 100644 --- a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md +++ b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md @@ -1,29 +1,26 @@ # SBN Production Release Glossary ========================================== -[List of availible samples](https://sbnsoftware.github.io/sbn/sbnprod_wiki/sample) - -========================================== +[List of available samples](https://sbnsoftware.github.io/sbn/sbnprod_wiki/sample) ## Production SBN 2022A (pending) - ### Final production campaign to be launched for 2022 conference season; support ICARUS first neutrino data and ICARUS+SBND simulation, and SBND commissioning samples +### Final production campaign to be launched for 2022 conference season; support ICARUS first neutrino data and ICARUS+SBND simulation, and SBND commissioning samples Major updates in this release: - * See list of SBN 2021C + * See list for SBN 2021C * Improved tuning of PMT reconstruction in ICARUS * Improved ICARUS TPC simulation - * Add in side and top panel CRT to ICARUS data reconstruction - * Improved simulation speed and memory usage in latest LArG4 release + * Added support for side and top panel CRT to ICARUS data reconstruction + * Improved simulation speed and memory usage in the latest LArG4 release ## Production SBN 2021C (December, 2021) - ### Main purpose: Test release for final production campaign to be launched for 2022 conference season +### Main purpose: Test release for final production campaign to be launched for 2022 conference season Major updates in this release: * Critical updates in Geant4 interfaces and charge/light simulation model and CRT simulation * Updates in ICARUS noise model and signal processing * New Beyond Standard Model physics simulation models * Tuning of high-level reconstruction and analysis interfaces - From ed2943dc9e46e02054fed02678442796ff69543c Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 11 Mar 2022 17:46:24 +0000 Subject: [PATCH 0053/1437] Create sbncode_v09_45_00.md --- .../Releases/sbncode_v09_45_00.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_45_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_45_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_45_00.md new file mode 100644 index 000000000..f2f283ae7 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_45_00.md @@ -0,0 +1,38 @@ +--- +layout: page +title: sbncode_v09_45_00 +toc: true +--- + +sbncode_v09_45_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +11 March 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_45_00) has been cut and distributed. + +* sbncode (v09_45_00): + + Using: + * sbnobj v09_13_07 + + Includes: + * SBNSoftware/sbncode Change RawDigit collection window to 100 ticks on either side #240 + * SBNSoftware/sbncode Feature/jdyer_KDIFonlyOption enhancement #239 + * SBNSoftware/sbnobj adding association of anab::T0 to sbn::crt::CRTHit #39 + + +Extra info +--------------------------------------------------- From 26d58ce92ed66c184203e520756f5d945cf96f99 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 11 Mar 2022 17:47:34 +0000 Subject: [PATCH 0054/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 38b88121c..8280ee632 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,11 +11,12 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- -|`v09_44_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01) +|`v09_45_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_45_00) +|`v09_44_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01) |`v09_44_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00) |`v09_43_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_43_00) |`v09_42_04` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_04) -|`v09_42_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03) +|`v09_42_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_42_03) |`v09_37_01_01` | 'sbnana' SBN2021C production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_37_01_01) |`v09_42_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_02) |`v09_42_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_42_01) From 0f62f46761dfceec93dd6bb2d0f44667837525a3 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 11 Mar 2022 12:55:15 -0600 Subject: [PATCH 0055/1437] Create ReleaseNotes094500.md --- sbndcode_wiki/Releases/ReleaseNotes094500.md | 58 ++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes094500.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes094500.md b/sbndcode_wiki/Releases/ReleaseNotes094500.md new file mode 100644 index 000000000..57ab370d1 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes094500.md @@ -0,0 +1,58 @@ +--- +layout: page +title: ReleaseNotes094500 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.45.00 | 11 Mar 2022 | [ReleaseNotes](ReleaseNotes094500.html) | +| --- | --- | --- | + + + +sbndcode v09_45_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_45_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_45_00/sbndcode-v09_45_00.html) + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- + +* sbndcode PR 262: + * add dirt fcls to CI test + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_45_00 +* larsoft v09_45_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-03-11 Patrick Green : Merge branch 'release/v09_45_00' +* 2022-03-11 Patrick Green : Update to v09_45_00 +* 2022-03-11 Patrick Green : Merge pull request #262 from SBNSoftware/feature/hlay_ci_dirt_fcls +* 2022-03-11 Henry Lay : Add dirt fcls to CI test +* 2022-03-04 Patrick Green : Merge tag 'v09_44_00' into develop + +sbndutil +--------------------------------------------------- + +* 2022-03-11 Patrick Green : Merge tag 'v09_45_00' into develop +* 2022-03-11 Patrick Green : Merge branch 'release/v09_45_00' +* 2022-03-11 Patrick Green : Update to v09_45_00 +* 2022-03-04 Patrick Green : Merge tag 'v09_44_00' into develop From 9f8ff48ebbb15f53b124ec9103108a9cfee876ec Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 11 Mar 2022 12:55:59 -0600 Subject: [PATCH 0056/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index bf9975a8d..8c3688365 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_45_00` | Weekly release | [Release Notes](ReleaseNotes094500.html) |`v09_44_00` | Weekly release | [Release Notes](ReleaseNotes094400.html) |`v09_43_00` | Weekly release | [Release Notes](ReleaseNotes094300.html) |`v09_42_04` | Weekly release | [Release Notes](ReleaseNotes094204.html) From f9f139060e383d3b6d2d856be3484b204a3837ba Mon Sep 17 00:00:00 2001 From: Chris Backhouse Date: Mon, 14 Mar 2022 11:55:25 +0000 Subject: [PATCH 0057/1437] Add links to sbnana and sbnanaobj --- index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.md b/index.md index 6e9092d20..6ed10b18a 100644 --- a/index.md +++ b/index.md @@ -24,6 +24,8 @@ See below for helpful links: * [Wiki](icaruscode_wiki/Wiki) ([old Redmine wiki here](https://cdcvs.fnal.gov/redmine/projects/icaruscode/wiki)) * [sbndcode](https://github.com/SBNSoftware/sbndcode): SBND-specific code and configs. * [Wiki](sbndcode_wiki/Wiki) ([old Redmine wiki here](https://cdcvs.fnal.gov/redmine/projects/sbndcode/wiki)) +* [sbana](https://github.com/SBNSoftware/sbnana): Joint SBN non-art (i.e. CAF-based) analysis +* [sbnanaobj](https://github.com/SBNSoftware/sbnana): Joint SBN non-art data formats (i.e. StandardRecord) * [sbnbuild](https://github.com/SBNSoftware/sbnbuild): Common SBN build scripts and utilities. From ca8bc1bb6eaa15d2375e6c4dce226a6dc1664c7a Mon Sep 17 00:00:00 2001 From: Chris Backhouse Date: Mon, 14 Mar 2022 11:57:57 +0000 Subject: [PATCH 0058/1437] Add link to doxygen pages Depends on https://github.com/SBNSoftware/SBNSoftware.github.io/pull/11 (the page this links to won't exist until that is merged) --- index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/index.md b/index.md index 6ed10b18a..d61c0fb0e 100644 --- a/index.md +++ b/index.md @@ -40,6 +40,10 @@ See below for helpful links: * [sbndaq-xporter](https://github.com/SBNSoftware/sbndaq-xporter): Code for online SBN data management + +## Documentation ### +* [doxygen](doxygen): Auto-generated from the source code, updated nightly + ## Operations ## * [ICARUS Operations](Operations/SBN_FD/index) From e7c0c350f175de6dbc9d21474ecba89cf9e30790 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Wed, 16 Mar 2022 11:49:52 +0000 Subject: [PATCH 0059/1437] Update SBND_Trigger.md --- sbndcode_wiki/SBND_Trigger.md | 72 +++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/sbndcode_wiki/SBND_Trigger.md b/sbndcode_wiki/SBND_Trigger.md index f185a80d8..e982cd27a 100644 --- a/sbndcode_wiki/SBND_Trigger.md +++ b/sbndcode_wiki/SBND_Trigger.md @@ -100,6 +100,78 @@ The PMT hardware trigger simulation is a LArSoft producer module that adds in va } ``` +CAEN1730 Fragment Simulation +----------------------------------------------------------------------------- + +The PMT fragment producer (```sbndcode/Trigger/pmtArtdaqFragmentProducer_module.cc```) converts simulated PMT waveforms into CAEN1730 artdaq::Fragment format. For each PMT hardware trigger, waveforms are saved for 5120 samples (~10us, 2ns sampling) from -1us to +9us around the trigger time. Sets of 8 fragments are created per trigger, each containing 15 PMT waveforms + beam signal and timestamps. Trigger time(s) are offset by 0.5 seconds to avoid negative times. + +**Input:** + + OpDet Waveforms ```raw::OpDetWaveform``` (Detsim stage or later) + PMT Hardware trigger output ```sbnd::comm::pmtTrigger``` + +**Output:** + + CAEN1730 Fragments ```std::vector```. Set of 8 fragments are produced for each PMT hardware trigger. Each fragment contains 15 PMT waveforms, 5120 samples (~10us). First fragment of set contains binary beam signal (1 if waveform bin in time with beam, otherwise 0) in 16th channel. Fragment metadata also simulated -- fragment ID (0-7), number of channels, waveform length, trigger timestamp. +**Run the Simulation** + ```bash + lar -c run_pmtArtdaqFragmentProducer.fcl -s [PMT hardware trigger root file] + ``` + +**Change the Parameters** + The fhicl file can be found in ```sbndcode/Trigger```. + + The following parameters can be changed in the fhicl: + + _InputModuleNameWvfm_: input opdet waveforms module name, default "opdaq" + + _InputModuleNameTrigger_: input pmt hardware trigger module name, default "pmttriggerproducer" + + _Baseline_: PMT baseline used when extending/combining waveforms if full 3ms is not simulated, default 8000 ADC + + _MultiplicityThreshold_: PMT-pair multiplicity threshold to pass hardware trigger, default 10 pairs + + _BeamWindowLength_: beam window length, default 1.8 us (extended by 0.2us to account for delayed signals) + + _Verbose_: verbose output for debugging + + + PMT Software Trigger Simulation +----------------------------------------------------------------------------- + +The PMT software trigger producer (```sbndcode/Trigger/pmtSoftwareTriggerProducer_module.cc```) extracts PMT waveforms from CAEN1730 artdaq::Fragment format, determines which set of fragments is in time with the beam spill, runs desired software trigger metric algorithms and creates ```sbnd::trigger::pmtSoftwareTrigger``` object to store results. Filter module(s) can then be run using these metrics. + +Metrics available: + +**Input:** + + CAEN1730 Fragments ```std::vector``` created by the fragment simulation producer module. + +**Output:** + + PMT software trigger metrics ```sbnd::trigger::pmtSoftwareTrigger```. + + **Run the Simulation** + + ```bash + lar -c run_pmtsoftwaretriggerproducer.fcl -s [PMT fragment simulation root file] + ``` + +**Change the Parameters** + + The fhicl file can be found in ```sbndcode/Trigger```. + + The following parameters can be changed in the fhicl: + + _is_persistable_: controls whether trigger metrics object is written to output root file, default "true" + + _TriggerTimeOffset_: trigger time offset, must match offset used in fragment producer, default 0.5s + + _BeamWindowLength_: beam window length, default 1.8 us (extended by 0.2us to account for delayed signals) + + _WvfmLength_: waveform length, default 5120 samples (could also determine from fragments) + + _Verbose_: verbose output for debugging From 2d7fe92d5a0eb84e1f12ec2431376617ba45850c Mon Sep 17 00:00:00 2001 From: lynnt-uchicago <71307529+lynnt-uchicago@users.noreply.github.com> Date: Wed, 16 Mar 2022 14:12:19 -0500 Subject: [PATCH 0060/1437] Update SBND_Trigger.md --- sbndcode_wiki/SBND_Trigger.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/sbndcode_wiki/SBND_Trigger.md b/sbndcode_wiki/SBND_Trigger.md index e982cd27a..71a15397f 100644 --- a/sbndcode_wiki/SBND_Trigger.md +++ b/sbndcode_wiki/SBND_Trigger.md @@ -152,7 +152,22 @@ Metrics available: **Output:** - PMT software trigger metrics ```sbnd::trigger::pmtSoftwareTrigger```. + PMT software trigger metrics ```sbnd::trigger::pmtSoftwareTrigger```. + + The following metrics are contained in the above data product: + + _foundBeamTrigger_: boolean, whether the beam trigger fragment was found + + _nAboveThreshold_: number of total PMTs (# ranges from 0-120) above a ADC threshold (set in fcl) during the beam window (set in fcl, default 1.8 us) + + _triggerTimestamp_: trigger time in ns with respect to the beam spill + + _promptPE_: prompt light; total photoelectron count from all PMTs 100 ns after the triggerTimestamp + + _prelimPE_: preliminiary light; total photoelectron count from all PMTs during the beam spill, before the triggerTimestamp + + _pmtInfoVec_: data product ```std::vector pmtInfoVec;```, which contains the channel # for every PMT, baseline info for every PMT, and a vector of pulse information if you run the producer with the pulse algorithm turned on. However, this data product is currently not accessed when reading the metrics in the hitdumpertree. + **Run the Simulation** @@ -174,4 +189,18 @@ Metrics available: _WvfmLength_: waveform length, default 5120 samples (could also determine from fragments) - _Verbose_: verbose output for debugging + _Verbose_: verbose output for debugging + + _SaveHists_: boolean, whether or not to save the 10 us waveforms in histograms for the first few events + + _BaselineAlgo_: input a string corresponding to the algorithm for calculating the baseline. Current options: "constant" or "estimate." If choosing "estimate," the mean and standard deviation of the first 500 ns (250 entries) of each waveform is calculated. If the standard deviation is above 3 ADC, the mean and stddev of the last 500 ns of each waveform is used instead. + + _InputBaseline_: input baseline for ```BaselineAlgo: "constant"```; default 8000 ADC + + _InputBaselineSigma_: input baseline stddev for ```BaselineAlgo: "constant```; default 2.0 ADC + + _ADCThreshold_: ADC threshold to calculate ```nAboveThreshold```, default 7960 ADC + + _FindPulses_: boolean, whether or not to use the crude pulse finder (more computational); default False + + _PEArea_: Conversion between ADCxns to photoelectrons when using the crude pulse finder From 9bced65c35a0fa442123a370ca09a345f1abd865 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Tue, 22 Mar 2022 11:08:32 +0000 Subject: [PATCH 0061/1437] Create ReleaseNotes094600.md --- sbndcode_wiki/Releases/ReleaseNotes094600.md | 111 +++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes094600.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes094600.md b/sbndcode_wiki/Releases/ReleaseNotes094600.md new file mode 100644 index 000000000..741b4399d --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes094600.md @@ -0,0 +1,111 @@ +--- +layout: page +title: ReleaseNotes094600 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.46.00 | 22 Mar 2022 | [ReleaseNotes](ReleaseNotes094600.html) | +| --- | --- | --- | + + + +sbndcode v09_46_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_46_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_46_00/sbndcode-v09_46_00.html) + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- + +* sbndcode PR 265: + * adds PMT software trigger module and fragment producer + * updates to the whole PMT trigger simulation chain, see DocDb 25200 + * requires SBNSoftware/sbnobj#48 + +Bug fixes +--------------------------------------------------- + +* sbndcode PR 256: + * CRT Geometry Mapping BugFix + * When we adopted geometry v02_00 we inverted how the x & y dimensions are defined for CRT strips and modules. This caused some issues with the CRT reconstruction which made assumptions about the directions of quantities like width and height. + * This makes the changes to fix the reconstruction. I have also taken the time to check all other uses of CRTGeoAlg to ensure it is correct in other places, in doing this I found lots of unused functions have removed them. + +* sbndcode PR 263: + * Change EnergyCut from 1e-5 to 1e-2 + * Geant understands the energy cut value in MeV, so this should be 1e-2 MeV = 10 keV, and not 1e-5 MeV, as shown in issue: #261. + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_46_00 +* larsoft v09_46_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-03-22 Patrick Green : Merge branch 'release/v09_46_00' +* 2022-03-22 Patrick Green : Update to v09_46_00 +* 2022-03-22 Patrick Green : Merge remote-tracking branch 'remotes/origin/feature/marcodeltutto-patch-1' into release/v09_46_00 +* 2022-03-22 Patrick Green : Merge remote-tracking branch 'remotes/origin/feature/hlay_crt_reco_changes_release_SBN2021C' into release/v09_46_00 +* 2022-03-18 Patrick Green : Merge pull request #265 from SBNSoftware/feature/lynnt_pmt_trig +* 2022-03-17 lynnt-uchicago : fixed fcl variable bug +* 2022-03-16 lynnt-uchicago : cleaned up comments +* 2022-03-16 lynnt-uchicago : cleaned up metrics, added comments +* 2022-03-11 Patrick Green : Merge tag 'v09_45_00' into develop +* 2022-03-11 Marco Del Tutto : Change EnergyCut from 1e-5 to 1e-2 +* 2022-03-10 lynnt-uchicago : added quick PE calculation and hitdumper branches +* 2022-03-03 lynnt-uchicago : added channel mapping and calculated PE +* 2022-03-03 lynnt-uchicago : cleaned baseline/pulse algo, added wvfm histos +* 2022-03-03 lynnt-uchicago : changed min/max start/end times to 1510 us +* 2022-03-01 lynnt-uchicago : changed hardcoded times to MaxEndTime and MinStartTime +* 2022-02-28 lynnt-uchicago : merge +* 2022-02-28 lynnt-uchicago : Merge remote-tracking branch +* 2022-02-28 lynnt-uchicago : Merge branch 'develop' into feature/lynnt_pmt_trig +* 2022-02-28 lynnt-uchicago : intermediate debugging stage + added fcl +* 2022-02-28 Patrick Green : tidying up fhicls etc. +* 2022-02-25 Patrick Green : allow for case where no trigger in time with beam +* 2022-02-25 Patrick Green : Extending maximum waveform length +* 2022-02-24 lynnt-uchicago : added baseline +* 2022-02-24 lynnt-uchicago : Merge remote-tracking branch 'origin/feature/pgreen_artdaq_fragment_conversion' into feature/lynnt_pmt_trig +* 2022-02-23 lynnt-uchicago : Merge remote-tracking branch 'origin/feature/eyandel_pmttrigger_fullwaveforms' into feature/lynnt_pmt_trig +* 2022-02-23 lynnt-uchicago : fixed window, deleted comment +* 2022-02-23 lynnt-uchicago : Merge branch 'develop' into feature/lynnt_pmt_trig +* 2022-02-23 lynnt-uchicago : Merge branch 'feature/lynnt_pmt_trig' of https://github.com/SBNSoftware/sbndcode into feature/lynnt_pmt_trig +* 2022-02-23 lynnt-uchicago : comment, change default windowEnd to 1.8 +* 2022-02-23 eyandel : change hardcoded waveform size to instead encompass full waveform size needed for event, add in Verbose fhicl option to turn off cout statements +* 2022-02-22 Patrick Green : Merge branch 'develop' into feature/pgreen_artdaq_fragment_conversion +* 2022-02-22 Patrick Green : Merge branch 'develop' into feature/pgreen_artdaq_fragment_conversion +* 2022-02-22 Patrick Green : Turning hard-coded values into fhicl parameters + cleanup +* 2022-02-21 Patrick Green : Added check for beam window +* 2022-02-18 Patrick Green : Created PMT software trigger producer module +* 2022-02-16 Patrick Green : Cleaned up and added timestamps to the PMT artdaq fragments +* 2022-02-15 Patrick Green : Created PMT Artdaq Fragment producer module +* 2022-02-11 Henry Lay : Add comments +* 2022-02-01 Henry Lay : Update DetSimAna module for new namings +* 2022-02-01 Henry Lay : Return functions +* 2022-01-31 Henry Lay : Remove unused functions +* 2022-01-31 Henry Lay : Improve boolean logic +* 2022-01-31 Henry Lay : Improve boolean logic +* 2022-01-31 Henry Lay : Amend CRTGeoAlg to cope with change of coordinate system +* 2022-01-27 Henry Lay : Delete unused functions +* 2022-01-26 Patrick Green : Update to v09_37_01_03p01 +* 2022-01-26 Patrick Green : Merge pull request #251 from SBNSoftware/feature/zennamo_dropmcreco_intime + +sbndutil +--------------------------------------------------- + +* 2022-03-22 Patrick Green : Merge tag 'v09_46_00' into develop +* 2022-03-22 Patrick Green : Merge branch 'release/v09_46_00' +* 2022-03-22 Patrick Green : Update to v09_46_00 +* 2022-03-11 Patrick Green : Merge tag 'v09_45_00' into develop From 663c7bf5d65ceb075a5bcf02444dda6f01169e78 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Tue, 22 Mar 2022 11:08:53 +0000 Subject: [PATCH 0062/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 8c3688365..87bed4fef 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_46_00` | Weekly release | [Release Notes](ReleaseNotes094600.html) |`v09_45_00` | Weekly release | [Release Notes](ReleaseNotes094500.html) |`v09_44_00` | Weekly release | [Release Notes](ReleaseNotes094400.html) |`v09_43_00` | Weekly release | [Release Notes](ReleaseNotes094300.html) From 1dccbbe1dfdef7402b75b0de454e77dc64cdd34b Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 23 Mar 2022 14:43:28 -0700 Subject: [PATCH 0063/1437] Update Grid_Intro.md --- SBNYoung/Grid_Intro.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SBNYoung/Grid_Intro.md b/SBNYoung/Grid_Intro.md index d7d104693..0c537b281 100644 --- a/SBNYoung/Grid_Intro.md +++ b/SBNYoung/Grid_Intro.md @@ -8,3 +8,5 @@ title: The Grid *Under construction* This page will detail how to submit single and batch jobs to the FNAL grid. + +Hint: [Project-py](https://cdcvs.fnal.gov/redmine/projects/project-py/wiki/Project-py_guide) (different from the less and less supported [LArSoft/larbatch](https://github.com/LArSoft/larbatch)'s [`project.py`](https://github.com/LArSoft/larbatch/blob/8749597a1180b7a80ccf3076772743f813edbe1f/scripts/project.py)). From 76723fbb8025b91dab23529eb847e333eceb8407 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 23 Mar 2022 14:46:53 -0700 Subject: [PATCH 0064/1437] Update Computing_Resources.md --- icaruscode_wiki/Computing_Resources.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/icaruscode_wiki/Computing_Resources.md b/icaruscode_wiki/Computing_Resources.md index 9623b5318..d7c6d145e 100644 --- a/icaruscode_wiki/Computing_Resources.md +++ b/icaruscode_wiki/Computing_Resources.md @@ -304,6 +304,8 @@ and often no action is needed, beside maybe adding a `` element for good mea Also note that FIFE recommends that Operating System selection be not enforced via `--os` option when using containers (after all, we are explicitly shipping the whole OS). +And, about FIFE recomendations, [Project**-**py](https://cdcvs.fnal.gov/redmine/projects/project-py/wiki/Project-py_guide) +is the recommended job submission tool (SBN-specific wiki documentation pending). Software distribution From 564d57f3ab945abd999dd26641de6f8e162bc6de Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Thu, 24 Mar 2022 10:53:42 +0000 Subject: [PATCH 0065/1437] Create ReleaseNotes093702.md --- sbndcode_wiki/Releases/ReleaseNotes093702.md | 151 +++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes093702.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes093702.md b/sbndcode_wiki/Releases/ReleaseNotes093702.md new file mode 100644 index 000000000..eae6745e5 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes093702.md @@ -0,0 +1,151 @@ +--- +layout: page +title: ReleaseNotes093702 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.37.02 | 24 Mar 2022 | [ReleaseNotes](ReleaseNotes093702.html) | +| --- | --- | --- | + + + +sbndcode v09_37_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_37_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_37_02/sbndcode-v09_37_02.html) + +Purpose +--------------------------------------------------- + +* Production release, base release for SBN-2022A + +New features +--------------------------------------------------- + +* sbndcode PR 253: + * light sim+reco updates for SBN2022A release + * This PR contains the light simulation and reconstruction updates for the SBN2022A release, cherry-picking the required commits to allow compatibility with the SBN2021C branch. Commits taken from: + * Add photon propagation times to hybrid model and re-enable by default #235 (Hybrid model) + * Change voxelization scheme for hybrid model #245 (Hybrid model) + * OpT0Finder with new LArG4 #247 (OpT0Finder) + * Requires SBNSoftware/sbncode#230 and LArSoft/larsim#84. + * Requires sbnd_data v01_11_00 + +* sbndcode PR 255: + * update pandora settings to persist neutrino id features + * this PR makes the required change to the pandora settings file to use the functionality in PandoraPFA/LArContent#189. + +* sbndcode PR 264: + * The functionality in sbndcode to run the new CRUMBS tool which lives in sbncode. + * CRUMBS is added as a producer to the standard and standard+sce caf workflows + * SCE versions of the crt hit and track matching are added as they are needed as inputs + * sbndcode is pointed to a new version of sbnd_data (v1_12_00) containing the weights file for CRUMBS's BDT + * Links to main PR SBNSoftware/sbncode#250 + +* sbndcode PR 271: + * Add lite versions of various fcl files, dropping unused data products. + +* sbnd_data v01_11_00: + * Adds updated optical library for external argon (hybrid model) + +* sbnd_data v01_12_00: + * Adds CRUMBS' BDT weights + +Bug fixes +--------------------------------------------------- + +* sbndcode PR 256: + * CRT Geometry Mapping BugFix + * When we adopted geometry v02_00 we inverted how the x & y dimensions are defined for CRT strips and modules. This caused some issues with the CRT reconstruction which made assumptions about the directions of quantities like width and height. + * This makes the changes to fix the reconstruction. I have also taken the time to check all other uses of CRTGeoAlg to ensure it is correct in other places, in doing this I found lots of unused functions have removed them. + +* sbndcode PR 258: + * update for ifdhc that previously was merged into develop + * fix required for fcl_tests to complete successfully (find reference files) + +* sbndcode PR 263: + * Change EnergyCut from 1e-5 to 1e-2 + * Geant understands the energy cut value in MeV, so this should be 1e-2 MeV = 10 keV, and not 1e-5 MeV, as shown in issue: #261. + +* sbndcode PR 266: + * Update CAF tests + * Adding some CAF test updates to the production branch that were approved and merged to develop in #244 + +* sbndcode PR 267: + * Fix typo, not dropping SimEnergyDeposits as intended. + +* sbndcode PR 268: + * Set RootOutput parameter saveMemoryObjectThreshold=0 in several standard fcl files. + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_37_02 +* larsoft v09_37_01_02 +* sbnd_data v01_12_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-03-24 Patrick Green : Update to v09_37_02, for SBN2022A +* 2022-03-24 Patrick Green : Merge pull request #271 from hgreenlee/greenlee_wf_lite +* 2022-03-24 Patrick Green : Merge pull request #264 from SBNSoftware/feature/hlay_CRUMBS_2021C +* 2022-03-24 Patrick Green : Merge branch 'release/SBN2022A' into feature/hlay_CRUMBS_2021C +* 2022-03-24 Patrick Green : Merge pull request #255 from SBNSoftware/feature/hlay_writeNuIdFeatures_release_SBN2021C +* 2022-03-24 Patrick Green : Merge pull request #253 from SBNSoftware/feature/pgreen_2022A_light_sim_reco +* 2022-03-24 Patrick Green : Merge branch 'release/SBN2022A' into feature/pgreen_2022A_light_sim_reco +* 2022-03-23 Miquel Nebot : update sbncode version for SBN2022A CI test +* 2022-03-22 Herbert Greenlee : Merge remote-tracking branch 'origin/release/SBN2022A' into greenlee_wf_lite +* 2022-03-22 Herbert Greenlee : Don't drop MCParticles in g4 lite fcl files. +* 2022-03-22 Herbert Greenlee : Add detsim lite fcl files. +* 2022-03-22 Herbert Greenlee : Add g4 lite fcl files. +* 2022-03-21 Patrick Green : Merge pull request #267 from hgreenlee/greenlee_fix_drop_typo +* 2022-03-21 Patrick Green : Merge pull request #268 from hgreenlee/greenlee_savemem +* 2022-03-18 Herbert Greenlee : Set RootOutput parameter saveMemoryObjectThreshold=0. +* 2022-03-18 Herbert Greenlee : Fix type, not dropping SimEnergyDeposits as intended. +* 2022-03-18 Herbert Greenlee : G4 lite drop SimEnergyDeposits and truth. +* 2022-03-18 Patrick Green : Merge pull request #263 from SBNSoftware/feature/marcodeltutto-patch-1 +* 2022-03-18 Patrick Green : Merge pull request #256 from SBNSoftware/feature/hlay_crt_reco_changes_release_SBN2021C +* 2022-03-18 Henry Lay : Correct CRT match labels for SCE CRUMBS +* 2022-03-17 Patrick Green : Merge pull request #266 from SBNSoftware/feature/hlay_caf_tests +* 2021-12-21 Henry Lay : Update ci_tests.cfg +* 2021-12-21 Henry Lay : Reduce limit on weighting universes +* 2021-12-21 Henry Lay : Due to comparison script change NEVENTS to 5 for CAF tests +* 2021-12-21 Henry Lay : In update builds you also need to ensure that we compare the correct files +* 2021-12-14 Henry Lay : Correct naming structure for CAF ci tests +* 2022-03-16 Henry Lay : Rename fcl +* 2022-03-16 Henry Lay : Point to new sbnd_data +* 2022-03-16 Henry Lay : Run SCE versions of crt matching +* 2022-02-23 Henry Lay : Run CRUMBS in cafmaker +* 2022-03-15 Henry Lay : Merge remote-tracking branch 'origin/feature/hlay_writeNuIdFeatures_release_SBN2021C' into HEAD +* 2022-03-15 Patrick Green : Merge pull request #258 from SBNSoftware/feature/chilgenb_upateForIfdhc +* 2022-03-11 Marco Del Tutto : Change EnergyCut from 1e-5 to 1e-2 +* 2022-01-17 Henry Lay : Amend ifdh usage +* 2022-02-14 Chris Hilgenberg : ifdh ll -> ifdh findMatchingFiles +* 2022-02-11 Henry Lay : Add comments +* 2022-02-01 Henry Lay : Update DetSimAna module for new namings +* 2022-02-01 Henry Lay : Return functions +* 2022-01-31 Henry Lay : Remove unused functions +* 2022-01-31 Henry Lay : Improve boolean logic +* 2022-01-31 Henry Lay : Improve boolean logic +* 2022-01-31 Henry Lay : Amend CRTGeoAlg to cope with change of coordinate system +* 2022-01-27 Henry Lay : Delete unused functions +* 2022-02-10 Henry Lay : Update pandora settings to persist neutrino id features +* 2022-02-08 Patrick Green : Update to sbnd_data v01_11_00 +* 2022-01-17 Marco Del Tutto : Add VUVHits and VISHits to opt0finder config +* 2022-01-17 Marco Del Tutto : Re-add opt0finder to standard reco chain +* 2022-01-17 Marco Del Tutto : Improve messages +* 2022-01-17 Marco Del Tutto : Pass the SemiAnalyticalModel class to the FlashMatchManager +* 2021-12-21 fran-nicar : Change voxelization scheme for hybrid model +* 2022-02-08 Patrick Green : Merge remote-tracking branch 'remotes/origin/feature/pgreen_hybrid_model_propagation_times' into feature/pgreen_2022A_light_sim_reco +* 2021-12-06 Patrick Green : Re-enable hybrid light simulation +* 2021-11-29 Patrick Green : Added configuration for photon propagation time simulation in external argon (hybrid model) + +sbndutil +--------------------------------------------------- From 7bf6890b29152a9be9d0d29a97ba492dfbc8dc8a Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Thu, 24 Mar 2022 10:54:18 +0000 Subject: [PATCH 0066/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 87bed4fef..0433f94d4 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_37_02` | Production release SBN-2022A | [Release Notes](ReleaseNotes093702.html) |`v09_46_00` | Weekly release | [Release Notes](ReleaseNotes094600.html) |`v09_45_00` | Weekly release | [Release Notes](ReleaseNotes094500.html) |`v09_44_00` | Weekly release | [Release Notes](ReleaseNotes094400.html) From 8f1bb46ac38d56ca28cccd8630c4cb36692917cb Mon Sep 17 00:00:00 2001 From: eyandel Date: Thu, 24 Mar 2022 15:02:52 -0500 Subject: [PATCH 0067/1437] Update SBND_Trigger.md --- sbndcode_wiki/SBND_Trigger.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sbndcode_wiki/SBND_Trigger.md b/sbndcode_wiki/SBND_Trigger.md index 71a15397f..c10506191 100644 --- a/sbndcode_wiki/SBND_Trigger.md +++ b/sbndcode_wiki/SBND_Trigger.md @@ -28,7 +28,7 @@ The PMT hardware trigger simulation is a LArSoft producer module that adds in va **Input:** - OpDet Waveforms (typically using Detsim files will have all these waveforms, reco 1 and 2 files may contain some filtered set of them) + OpDet Waveforms (typically Detsim files will have all these waveforms, reco 1 and 2 files may contain some filtered set of them) **Output:** @@ -37,7 +37,7 @@ The PMT hardware trigger simulation is a LArSoft producer module that adds in va ```int maxPMTs``` = maximum number of pmt pairs above threshold during trigger window (usually beam spill) - Optional: histograms for all included channels of every step of the hardware trigger logic for up to three configurable events + Optional: histograms for all included channels of every step of the hardware trigger logic for a configurable set of events **Run the Simulation** @@ -54,7 +54,9 @@ The PMT hardware trigger simulation is a LArSoft producer module that adds in va _OpDetsToPlot:_ choice to include coated, uncoated, or all PMTs (default = all) - _Threshold:_ individual PMT threshold, in ADC (default = 7960 ADC); should be _below_ baseline; simulated baseline = 8000 ADC, ideal single PE response: 1 PE ~8 ADC, test bench: 1 PE ~ 25 ADC + _IndividualThresholds:_ if true, Threshold needs to be a 120 element array of each individual PMT ADC threshold in order of lowest to highest channel number (default = false) + + _Threshold:_ PMT threshold, in ADC, format: [coated, uncoated], unless IndividualThresholds is true, (default = [7960, 7976.0] ADC); should be _below_ baseline; simulated baseline = 8000 ADC, ideal single PE response: 1 PE ~ 8 ADC, test bench: 1 PE ~ 25 ADC _OVTHRWidth:_ over-threshold width (page 40 of hardware trigger manual), controls the number of extra ticks to stay high after a rising edge (trigger goes from 0 to 1) (default = 11) @@ -74,11 +76,13 @@ The PMT hardware trigger simulation is a LArSoft producer module that adds in va _WindowStart:_ start time of the trigger window, in us (default = 0.0) - _WindowEnd:_ end time of the trigger window, in us (default = 1.6) + _WindowEnd:_ end time of the trigger window, in us (default = 1.8) + + _SaveHists:_ if true, saves the waveform histograms (default = false) - _SaveHists:_ if true, saves the waveform histograms (default = true) + _EvHists:_ if SaveHists=true, which event numbers to save the histograms for (default = [1]); if too many hists are saved, may have memory issues, try saving less events. - _EvHists:_ if SaveHists=true, which event numbers to save the histograms for, max number of events = 3 (default = [1,2,3]) + _Verbose:_ if true, outputs text about the event (default = false) **Read the Products** From d343b74c3382e62ab4f3f960342d44722623cd3d Mon Sep 17 00:00:00 2001 From: eyandel Date: Thu, 24 Mar 2022 15:07:06 -0500 Subject: [PATCH 0068/1437] Update SBND_Trigger.md --- sbndcode_wiki/SBND_Trigger.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/SBND_Trigger.md b/sbndcode_wiki/SBND_Trigger.md index c10506191..f5f4ba862 100644 --- a/sbndcode_wiki/SBND_Trigger.md +++ b/sbndcode_wiki/SBND_Trigger.md @@ -56,7 +56,7 @@ The PMT hardware trigger simulation is a LArSoft producer module that adds in va _IndividualThresholds:_ if true, Threshold needs to be a 120 element array of each individual PMT ADC threshold in order of lowest to highest channel number (default = false) - _Threshold:_ PMT threshold, in ADC, format: [coated, uncoated], unless IndividualThresholds is true, (default = [7960, 7976.0] ADC); should be _below_ baseline; simulated baseline = 8000 ADC, ideal single PE response: 1 PE ~ 8 ADC, test bench: 1 PE ~ 25 ADC + _Threshold:_ PMT threshold, in ADC; format: [coated, uncoated], unless IndividualThresholds is true, (default = [7960, 7976.0] ADC); should be _below_ baseline; simulated baseline = 8000 ADC, ideal single PE response: 1 PE ~ 8 ADC, test bench: 1 PE ~ 25 ADC _OVTHRWidth:_ over-threshold width (page 40 of hardware trigger manual), controls the number of extra ticks to stay high after a rising edge (trigger goes from 0 to 1) (default = 11) From 5bf23c581fa3ce6565b76880ae9d4f16bca6a034 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 25 Mar 2022 11:12:37 +0000 Subject: [PATCH 0069/1437] Create ReleaseNotes09370201.md --- .../Releases/ReleaseNotes09370201.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09370201.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09370201.md b/sbndcode_wiki/Releases/ReleaseNotes09370201.md new file mode 100644 index 000000000..7da99fa0d --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09370201.md @@ -0,0 +1,42 @@ +--- +layout: page +title: ReleaseNotes09370201 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.37.02.01 | 25 Mar 2022 | [ReleaseNotes](ReleaseNotes09370201.html) | +| --- | --- | --- | + + + +sbndcode v09_37_02_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_37_02_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_37_02_01/sbndcode-v09_37_02_01.html) + +Purpose +--------------------------------------------------- + +* Patch release for SBN-2022A + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_37_02_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-03-25 Patrick Green : Update to v09_37_02_01, patch release for SBN2022A From b4583767209e1d22673818e46162795a016dcc98 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 25 Mar 2022 11:13:28 +0000 Subject: [PATCH 0070/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 0433f94d4..a693692dd 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_37_02_01` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370201.html) |`v09_37_02` | Production release SBN-2022A | [Release Notes](ReleaseNotes093702.html) |`v09_46_00` | Weekly release | [Release Notes](ReleaseNotes094600.html) |`v09_45_00` | Weekly release | [Release Notes](ReleaseNotes094500.html) From 52ac0b99cbe4510ec8418d42e56faa93d80b38be Mon Sep 17 00:00:00 2001 From: Herbert Greenlee Date: Mon, 28 Mar 2022 12:05:54 -0500 Subject: [PATCH 0071/1437] Update workflow_sbnd.md Add link to MC2022A workflow google doc. --- AnalysisInfrastructure/WorkflowManagement/workflow_sbnd.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AnalysisInfrastructure/WorkflowManagement/workflow_sbnd.md b/AnalysisInfrastructure/WorkflowManagement/workflow_sbnd.md index 287225b34..16b0f4bb3 100644 --- a/AnalysisInfrastructure/WorkflowManagement/workflow_sbnd.md +++ b/AnalysisInfrastructure/WorkflowManagement/workflow_sbnd.md @@ -14,3 +14,5 @@ cafmakerjob_sbnd_sce.fcl [MC 2021B](https://docs.google.com/document/d/13Mvt91CVixfdo1e3ah9Ru-wfbYUXEvHMlcbVk2RYCsE/edit?usp=sharing) [MC 2021C](https://docs.google.com/document/d/1UMmff2LUnRtIpgy0_eE9D3eDw96UkuXCTBCGbWVzWak/edit?usp=sharing) + +[MC 2022A](https://docs.google.com/document/d/1EFz33A7__IzkY4XKpeUjXJ8WGGc5CGkVRHFha2wqDlc/edit?usp=sharing) From 7c10e9ccd7737b070bf322edd89a1158629cfc7f Mon Sep 17 00:00:00 2001 From: Herbert Greenlee Date: Mon, 28 Mar 2022 12:06:49 -0500 Subject: [PATCH 0072/1437] Update workflow_icarus.md Add link to MC2022A workflow google doc. --- AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md index 254992017..5ccd85912 100644 --- a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md +++ b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md @@ -28,3 +28,5 @@ cafmakerjob_icarus_sce.fcl [MC 2021B](https://docs.google.com/document/d/13Mvt91CVixfdo1e3ah9Ru-wfbYUXEvHMlcbVk2RYCsE/edit?usp=sharing) [MC 2021C](https://docs.google.com/document/d/1UMmff2LUnRtIpgy0_eE9D3eDw96UkuXCTBCGbWVzWak/edit?usp=sharing) + +[MC 2022A](https://docs.google.com/document/d/1EFz33A7__IzkY4XKpeUjXJ8WGGc5CGkVRHFha2wqDlc/edit?usp=sharing) From 6f1db2ce28bbf6cf6db41403623bc1f4cc3ca1f1 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Wed, 30 Mar 2022 11:51:29 -0500 Subject: [PATCH 0073/1437] Update Managing_the_CI_Validation_System.md outline directory and file name structure for validation input and reference files --- .../Managing_the_CI_Validation_System.md | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md b/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md index 1b8809b13..96a134f74 100644 --- a/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md +++ b/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md @@ -13,7 +13,7 @@ The CI system consists of two parts the integration tests and the validation tes The integration tests or standard CI are run everytime something is pushed to develop or someone wants to test a branch/PR. We currently run a suite of 8 unit tests and 13 integration tests, a build & installation check is also run. -If you're managing the CI system then its your job to monitor the output of these tests. Depending on where you see warnings/failures then there are different things you need to do +If you're managing the CI system then it is your job to monitor the output of these tests. Depending on where you see warnings/failures then there are different things you need to do ##### build / install If you see failures in either of these stages then someone is testing code that doesn't compile. The logs are usually fairly self explanatory in this scenario. If this is a test of the develop branch then you should speak to the release manager right away. If this is against a PR then you and the release manager need to ensure that the PR is updated to fix these issues before it is merged. @@ -48,9 +48,22 @@ For each reference tag, before any validation tests can be triggered, a correspo The default reference tag will be updated whenever something has changed upstream from the stage being validated that the inputs should reflect, there is a breaking change, a significant improvment has been made or a new feature is introduced. ##### Input Samples -Commonly used CI input samples are stored in +Validation input samples are stored in the experiment specific persistent dCache areas. Samples from simulation or reconstruction stages of interest for various reference versions of the experiment code. ``` -/pnfs//persistent/ContinuousIntegration/input/validation/ +/pnfs//persistent/ContinuousIntegration/input/validation/ + sample A/ + sample B/ + gen/ + g4/ + detsim/ + test/ + gen/ + g4/ + detsim/ + files_current.root → SAM def for 'current' (version in metadata) + vii_jj_kk/ + vxx_yy_zz/ + files_vxx_yy_xx.root → SAM def for version (version in def name) ``` For convenience and robustness against grid hickups, input samples are declared to SAM. The input samples use the same names regardless of the default reference tag, however the tag used in the sample production is written to the file metadata in `Dataset.Tag` with the format `_vXX_YY_ZZ`. This is used to check if a requested reference tag has a corresponding dataset. When the default reference tag is updated, the previous reference files get transfered to a subdirectory within their parent directory with name, `vXX_YY_ZZ`. @@ -83,4 +96,20 @@ Information on available samples is given below. Note the template arguments bel The \_test configs are not *only* for testing whether the generation works with current develop branches but also produces the input files required for the \_test versions of the actual validation. Hence, it is important to run the \_test config first even if you are sure the main config will be successful. ##### Reference Files -*Not yet available* +Reference files contain analysis objects, only TH1F's for now (can be expanded). When the validtion is run, a new, corresponding set of analysis objects is produced and compared against those in the reference file. At present, there is only a single reference file per validation (sub)workflow. Each file contains the version of the experiment code that was used to produce it. In each (sub)workflow directory, there is a (local) symlink that points to whatever version that corresponds to the latest integration release. The directory and file naming structure is below. +``` +/pnfs//persistent/ContinuousIntegration/reference/validation/ + WorkflowA/ + WorkflowB/ + test/ + WorkflowA/ + ci_validation_histos_vII_JJ_KK.root + ci_validation_histos_vXX_YY_ZZ.root + ci_validation_histos.root (symlink pointing to 'current' version) + WorkflowB/ + SubworkflowA/ + SubworkflowB/ + ci_validation_histos_vII_JJ_KK.root + ci_validation_histos_vXX_YY_ZZ.root + ci_validation_histos.root (symlink pointing to 'current' version) +``` From 6804cbf76af178b4a47bf113c4d71c5a3aed6475 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Wed, 30 Mar 2022 12:54:31 -0500 Subject: [PATCH 0074/1437] Update Managing_the_CI_Validation_System.md --- sbn/sbnci_wiki/Managing_the_CI_Validation_System.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md b/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md index 96a134f74..68d082aba 100644 --- a/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md +++ b/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md @@ -56,6 +56,10 @@ Validation input samples are stored in the experiment specific persistent dCache gen/ g4/ detsim/ + files_current.root → SAM def for 'current' (version in metadata) + vii_jj_kk/ + vxx_yy_zz/ + files_vxx_yy_xx.root → SAM def for version (version in def name) test/ gen/ g4/ From aac64aeb36614b9196ffef9576c0e2f7900cad6b Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Wed, 30 Mar 2022 13:51:09 -0500 Subject: [PATCH 0075/1437] Update Managing_the_CI_Validation_System.md add info about reference version control --- .../Managing_the_CI_Validation_System.md | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md b/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md index 68d082aba..0395fda41 100644 --- a/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md +++ b/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md @@ -7,11 +7,34 @@ title: Managing the CI This page is intended to only be used by people responsible for keeping the CI system up-to-date and managing a particular validation workflow, please do not use these commands if you are not one of those people! -The CI system consists of two parts the integration tests and the validation tests. More information on all these tests are available on other pages. This page is intended to give you the commands needed to update things. +More information on all these tests are available on other pages. This page is intended to give you the information needed to maintain the CI system. As a system manager, your job is to make sure the CI system remains in working condition and up-to-date. Maintainance can be separated into two catagories: +integration tests and validation tests. Maintainance topics specific to each of these are covered below. -### Standard CI +### Reference version control -The integration tests or standard CI are run everytime something is pushed to develop or someone wants to test a branch/PR. We currently run a suite of 8 unit tests and 13 integration tests, a build & installation check is also run. +A crucial component of the CI system is the version/tag of the code being tested and that of the reference code we are comparing against. While developers are free to choose the branch point of their feature branches, we want to make sure that we only compare against well understood, quality releases. To that end, we only allow users to compare against pre-approved versions of the experiment code. + +Approved reference versions/tags are listed, one per line, in a text file stored in the experiment persistent dCache area. This file is only writeable by users in the `sbnci` Unix group. +``` +/pnfs//persistent/ContinuousIntegration/approved_reference_versions.txt +``` + +As CI system manager, your job is not to approve reference versions. That is done by SBN Analysis/AI conveners. Your job is to add support for these versions to the CI system. When a new version is approved, you must +1. Create integration test reference files with the new version (see "Integration tests" below); +2. Generate the full set of validation input samples (see "Validation tests" below); +3. Generate validation reference files for all validation workflows (see "Validation tests" below); +4. Add the newly approved reference version to `approved_reference_versions.txt` and to the main CI wiki page. + +The reference version is specified to the CI system via the trigger command with the `-e` flag and the environmental variable `SBNCI_REF_VERSION`. +``` +-e SBNCI_REF_VERSION=vXX_YY_ZZ +``` +If this option is not specified, the CI system defaults to the "current" reference tag, usually the most recent integration release. + + +### Integration tests + +Integration tests consist of build, unit, install, and regression tests. They are run everytime something is pushed to develop or someone wants to test a branch/PR. We currently run a suite of 8 unit tests and 13 regression tests. If you're managing the CI system then it is your job to monitor the output of these tests. Depending on where you see warnings/failures then there are different things you need to do @@ -40,9 +63,7 @@ where `` = `SBNDCODE` or `ICARUSCODE` Remember you need a valid proxy to launch a trigger and its important not to update the references until the release manager and PR-maker are happy the changes are sensible. -### Validation -A crucial ingredient of the validation system is the reference version/tag of the code being tested. The SBN CI system supports a user specifying a reference tag by passing the option `-e ci_reference_tag=vXX_YY_ZZ` to the trigger command. If this option is not specified, the CI system defaults to the most recent reference tag. - +### Validation tests For each reference tag, before any validation tests can be triggered, a corresponding set of art-ROOT input files as well as a set of histograms for each validation metric must be produced. As part of `sbnci` RM, these files will be produced each time the reference version is updated. If the reference version specified by a user has not yet been used, the user will need to generate the files prior to running any validation tests. The default reference tag will be updated whenever something has changed upstream from the stage being validated that the inputs should reflect, there is a breaking change, a significant improvment has been made or a new feature is introduced. From ffbac39604529d9e6b8a3b1d4efaebdbe6f237c2 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Thu, 31 Mar 2022 12:52:15 -0500 Subject: [PATCH 0076/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index 77c2aa266..787e65017 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -8,8 +8,8 @@ hero_height: is-medium Welcome to the SBN CI & validation main page! If you just want to run a validation test for your pull request, continue reading the Quick Start Guide below. For more information, check out the links at the bottom. ## Outages -- `sbndcode`: nominal -- `icaruscode`: nominal +- `sbndcode`: undergoing maintainance +- `icaruscode`: undergoing maintainance ## Current reference tags - `sbndcode`: `v09_37_01_03p01` From 5d16fc4fbd5cf1adf38300f51b07cb98ee156714 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Thu, 31 Mar 2022 13:38:47 -0500 Subject: [PATCH 0077/1437] Update Managing_the_CI_Validation_System.md --- sbn/sbnci_wiki/Managing_the_CI_Validation_System.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md b/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md index 0395fda41..d2c6ebfee 100644 --- a/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md +++ b/sbn/sbnci_wiki/Managing_the_CI_Validation_System.md @@ -130,11 +130,11 @@ Reference files contain analysis objects, only TH1F's for now (can be expanded). WorkflowA/ ci_validation_histos_vII_JJ_KK.root ci_validation_histos_vXX_YY_ZZ.root - ci_validation_histos.root (symlink pointing to 'current' version) + ci_validation_histos_current.root (symlink pointing to 'current' version) WorkflowB/ SubworkflowA/ SubworkflowB/ ci_validation_histos_vII_JJ_KK.root ci_validation_histos_vXX_YY_ZZ.root - ci_validation_histos.root (symlink pointing to 'current' version) + ci_validation_histos_current.root (symlink pointing to 'current' version) ``` From 1e1fcd9d6a6e1c3799efa95b67456b9d67041bdd Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Thu, 31 Mar 2022 16:00:06 -0500 Subject: [PATCH 0078/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index 787e65017..c6a0460de 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -9,7 +9,7 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati ## Outages - `sbndcode`: undergoing maintainance -- `icaruscode`: undergoing maintainance +- `icaruscode`: nominal ## Current reference tags - `sbndcode`: `v09_37_01_03p01` From 7d003309543d4dd6b885029c302f0d71c5ab9ad1 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Fri, 1 Apr 2022 12:01:28 -0700 Subject: [PATCH 0079/1437] Added Doxygen example. --- sbn/codingconv/CodingConventionsExplained.md | 36 ++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/sbn/codingconv/CodingConventionsExplained.md b/sbn/codingconv/CodingConventionsExplained.md index 53e1c10ab..4c2f76087 100644 --- a/sbn/codingconv/CodingConventionsExplained.md +++ b/sbn/codingconv/CodingConventionsExplained.md @@ -1415,6 +1415,42 @@ not expressed by the code. **Encouraged** inline documentation in Doxygen format, attached to the object being described (for example, to a `class` definition instead than to the file where the definition is stored). + Example: + ```cpp + /// Time utilities + namespace times { + + /// Nanosecond-precision absolute timestamp. + struct Timestamp { + std::int32_t seconds; ///< Seconds past from the Epoch in UTC time scale. + std::uint32_t nanoseconds; ///< Nanoseconds from the start of the last second. + + /** + * @brief Adds the specified number of nanoseconds to this timestamp. + * @param delta number of nanoseconds to add (may be negative) + * @return this same timestamp (updated) + * + * If `delta` is negative, the resulting timestamp will be earlier than before. + */ + Timestamp& addNanosecond(std::int64_t delta); + + /// Returns how much this timestamp is ahead of the `reference` one [ns] + constexpr std::int64_t operator- (Timestamp const& reference) const; + + }; // Timestamp + + /* + * @brief Sends the timestamp `ts` to the specified output stream. + * @return the output stream `out` + * + * The printed format is `". s"`. + */ + std::ostream& operator<< (std::ostream& out, Timestamp const& ts); + + } // namespace time + ``` + The Doxygen style (e.g. `///` vs. `//!`) should match the one already in use in the library. + If no previous documentation is present, the style `///` is *encouraged*. ## [DC] Tracking of changes ############################################## From 952712c48dcf3b152c5dcb6cbf902bf7c3ce386d Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 1 Apr 2022 14:50:54 -0500 Subject: [PATCH 0080/1437] Create SBND_DAQ_GettingStarted --- sbndaq_oldwiki/SBND_DAQ_GettingStarted | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 sbndaq_oldwiki/SBND_DAQ_GettingStarted diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted b/sbndaq_oldwiki/SBND_DAQ_GettingStarted new file mode 100644 index 000000000..77e952d3d --- /dev/null +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted @@ -0,0 +1,25 @@ + +------------ +layout: page +title: SBND DAQ for the CRT \#\# +----------------------------- + +open two terminal windows. For each + - login as sbnd on sbnd-gateway01.fnal.gov + - source "mstancar_launchdaq.sh" + + In one window, type "DAQInterface" + + In the other window, look at the file "run" and find the line with setdaqcomps.sh + The list of things that is there is all the things that will be included in the DAQ + + Type ./run to start the run and type ./stop to stop the run + + The data will magically appear in /daq/scratch/data/ + + + + + + + From 7d45f5f62bd11e4b0406210bc2af2ab67929c450 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 1 Apr 2022 15:56:55 -0500 Subject: [PATCH 0081/1437] Update SBND_DAQ_GettingStarted --- sbndaq_oldwiki/SBND_DAQ_GettingStarted | 35 ++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted b/sbndaq_oldwiki/SBND_DAQ_GettingStarted index 77e952d3d..88ea5788b 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted @@ -11,11 +11,42 @@ open two terminal windows. For each In one window, type "DAQInterface" In the other window, look at the file "run" and find the line with setdaqcomps.sh - The list of things that is there is all the things that will be included in the DAQ + You will find a list of things that will be included in the DAQ run, add or delete what you (don't) need. + - pmtx02 is the 1730 digitizer connected to link 1, in the Xarapuca crate on the right + - crt2x2upstr is just what it sounds like - all 4 modules on the upstream (south) frame + - crt2x2dwnstr is just what it sounds like - all 4 modules on the downstream (north) frame + - ptb01 is the trigger board Type ./run to start the run and type ./stop to stop the run - The data will magically appear in /daq/scratch/data/ + The data will magically appear in /daq/scratch/data/. It is suggested to make a directory for your data here and move it there at the end of the day each day. + + ------------------ + How to debug things when the DAQ crashes. . . in the window where the DAQInterface was running, look through the output to the screen for something like this + +Unexpected status message from process crt2x2upstr at sbnd-pds05-daq:11100: +"Error initializing crt2x2upstr with ParameterSet = +"FEBConfigurationStandard:{HG_peak_detector_PP:false +HG_shaper_time_constant:6 LG_peak_detector_PP:false LG_preamp_bias:true +LG_shaper_time_constant: // REMAINDER TRUNCATED BY DAQINTERFACE, SEE +/tmp/run_record_attempted_sbnd/1 FOR FULL FHiCL DOCUMENT" +See logfile sbnd-pds05-daq:/daq/log/crt2x2upstr-sbnd-pds05-11100/crt2x2upstr-sbnd-pds05-11100-20220401145716-175029.log for details + +And look at the log file specified there, it can be accessed on sbnd-gateway01 as well + +------------------------------------------------- + + + -------------------- +Specific to the crt: + - An error of this format usually means that the ethernet cable is not connected to the computer sbnd-pds05 or that the data port needs to be reconfigured + +%MSG-e ExceptionHandler: Initializing 01-Apr-2022 14:57:50 CDT Booted ExceptionHandler.cc:62 +cet::exception object caught:---- BernCRTData VerifyMACConfiguration() List of 4 FEBs declared +in the FHiCL file (dec): 74 85 87 88 doesn't match list of 0 detected FEBs: BEGIN + +---- BernCRTData VerifyMACConfiguration() List of 4 FEBs declared in the FHiCL file (dec): 74 85 87 88 doesn't match list of 0 detected FEBs: END + From 66b23cdebff64f4b0c4ad555bf16b57fdb8fd1be Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Fri, 1 Apr 2022 17:01:18 -0500 Subject: [PATCH 0082/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index c6a0460de..787e65017 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -9,7 +9,7 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati ## Outages - `sbndcode`: undergoing maintainance -- `icaruscode`: nominal +- `icaruscode`: undergoing maintainance ## Current reference tags - `sbndcode`: `v09_37_01_03p01` From 2c6e61270b5cee7bd6dc9786afe4e65fd051a3d4 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Sat, 2 Apr 2022 12:40:28 -0500 Subject: [PATCH 0083/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 40 ++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index 787e65017..fbc7cd731 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -8,32 +8,36 @@ hero_height: is-medium Welcome to the SBN CI & validation main page! If you just want to run a validation test for your pull request, continue reading the Quick Start Guide below. For more information, check out the links at the bottom. ## Outages -- `sbndcode`: undergoing maintainance -- `icaruscode`: undergoing maintainance +- `sbndcode`: crt test unavailable for 'current'; references unavailable for SBN2022A and 'current' +- `icaruscode`: undergoing maintainance; references unavailable for SBN2022A and 'current' -## Current reference tags -- `sbndcode`: `v09_37_01_03p01` -- `icaruscode`: `v09_37_01_03` +## Approved reference tags (and alias, if available) +- `sbndcode`: `v09_37_01_03p01` (SBN2021C), `v09_37_02_01` (SBN2022A), `v09_46_00` (current) +- `icaruscode`: `v09_37_01_03` (SBN2021C), `v09_37_02_01` (SBN2022A), `v09_46_00` (current) ## Quick Start Guide 1. Get a valid kerberos ticket with forwarding enabled (`kinit -f `) 2. ssh into one of your experiment's gpvm nodes -3. setup your environment: `source /cvmfs/.opensciencegrid.org/products//setup_.sh` -4. `setup sbnci v09_37_01 -q e20:prof` +3. setup your environment +``` +source /cvmfs/.opensciencegrid.org/products//setup_.sh +``` +4. `setup sbnci v09_46_00 -q e20:prof` 5. `source get_proxy.sh` -6. Test the CI workflow with a small sample using one of the following executables. Pass as an argument a space-separated list of the `repository@branch`'s you are testing and omit SBNSoftware from the repository name. Note that only SBNSoftware repositories are supported at this time. -- `tpc_reco_validation_test.sh` -- `tpc_sim_validation_test.sh` -- `pds_validation_test.sh` -- `crt_validation_test.sh` +6. To validate your code, you will need to provide the following. +- Validation workflow (`tpcreco`, `tpcsim`, `pds`, or `crt`) +- From `SBNSoftware/` only, a branch or list of branches (`repository1@branch1 repository2@branch2 ...`) +- The approved reference tag that you want to test your branch(es) against + + Test the CI workflow with a small sample (pass flag `-t or --test`) using the executable, `validate.sh`. + ``` + validate.sh --revisions [--ref or --current] [[--test]] + ``` + 7. Verify the the test succeeds by following its progress on [the test dashboard](https://dbweb9.fnal.gov:8443/TestCI/app/ns:sbnd/view_builds/index). -8. If your test succeeded, move on to the full validation test using one of the following executables. Pass as an argument a space-separated list of the `repository@branch`'s you are testing and omit SBNSoftware from the repository name. Note that only SBNSoftware repositories are supported at this time. -- `tpc_reco_validation.sh` -- `tpc_sim_validation.sh` -- `pds_validation.sh` -- `crt_validation.sh` +8. If your test succeeded, move on to the full validation test by repeating the same command as Step 6 except omit the `--test` flag. 9. Await your final results on [the CI dashboard](https://dbweb8.fnal.gov:8443/LarCI/app/ns:sbnd/view_builds/index). -10. Upon a successful test, note the CI build number in your pull request (get this from the CI dashboard, left column). +10. If performing this validation for PR approval, post the link to the validation panel on the dashboard as a comment in your PR. ### More Information 1. [SBN CI & Validation working group information](/sbn/sbnci_wiki/SBN_CI_Validation_group) From 1ffd216bc6d3df0edfd04e7c33e952c35fe9a80c Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Mon, 4 Apr 2022 01:20:29 -0500 Subject: [PATCH 0084/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index fbc7cd731..e0416548b 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -8,12 +8,18 @@ hero_height: is-medium Welcome to the SBN CI & validation main page! If you just want to run a validation test for your pull request, continue reading the Quick Start Guide below. For more information, check out the links at the bottom. ## Outages -- `sbndcode`: crt test unavailable for 'current'; references unavailable for SBN2022A and 'current' -- `icaruscode`: undergoing maintainance; references unavailable for SBN2022A and 'current' +#### sbndcode +- BNB nu + cosmics unavailable for 'current' +- crt test unavailable for 'current' +- references unavailable for SBN2022A and 'current' +#### icaruscode +- input samples unavailable for 'current' +- PDS validation unavailable for SBN2022A +- references unavailable for SBN2022A and 'current' ## Approved reference tags (and alias, if available) -- `sbndcode`: `v09_37_01_03p01` (SBN2021C), `v09_37_02_01` (SBN2022A), `v09_46_00` (current) -- `icaruscode`: `v09_37_01_03` (SBN2021C), `v09_37_02_01` (SBN2022A), `v09_46_00` (current) +- sbndcode: `v09_37_01_03p01` (SBN2021C), `v09_37_02_01` (SBN2022A), `v09_46_00` (current) +- icaruscode: `v09_37_01_03` (SBN2021C), `v09_37_02_01` (SBN2022A), `v09_46_00` (current) ## Quick Start Guide 1. Get a valid kerberos ticket with forwarding enabled (`kinit -f `) @@ -22,7 +28,7 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati ``` source /cvmfs/.opensciencegrid.org/products//setup_.sh ``` -4. `setup sbnci v09_46_00 -q e20:prof` +4. `setup sbnci v09_46_01 -q e20:prof` 5. `source get_proxy.sh` 6. To validate your code, you will need to provide the following. - Validation workflow (`tpcreco`, `tpcsim`, `pds`, or `crt`) @@ -34,7 +40,7 @@ source /cvmfs/.opensciencegrid.org/products//set validate.sh --revisions [--ref or --current] [[--test]] ``` -7. Verify the the test succeeds by following its progress on [the test dashboard](https://dbweb9.fnal.gov:8443/TestCI/app/ns:sbnd/view_builds/index). +7. Verify the the test succeeds by following its progress on [the test dashboard](https://dbweb9.fnal.gov:8443/TestCI/app/ns:sbnd/view_builds/index). Validation tests sometimes take several minutes to appear and usually complete in under four hours. 8. If your test succeeded, move on to the full validation test by repeating the same command as Step 6 except omit the `--test` flag. 9. Await your final results on [the CI dashboard](https://dbweb8.fnal.gov:8443/LarCI/app/ns:sbnd/view_builds/index). 10. If performing this validation for PR approval, post the link to the validation panel on the dashboard as a comment in your PR. From 5be3451f5434025ebdd36da20edc0d93ba398d57 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Mon, 4 Apr 2022 01:26:11 -0500 Subject: [PATCH 0085/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index e0416548b..9521fd980 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -12,6 +12,7 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati - BNB nu + cosmics unavailable for 'current' - crt test unavailable for 'current' - references unavailable for SBN2022A and 'current' + #### icaruscode - input samples unavailable for 'current' - PDS validation unavailable for SBN2022A From 0b88a00f52fa2eb0b94cec2f840c859744b42064 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Mon, 4 Apr 2022 01:27:15 -0500 Subject: [PATCH 0086/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index 9521fd980..0537239d6 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -19,8 +19,8 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati - references unavailable for SBN2022A and 'current' ## Approved reference tags (and alias, if available) -- sbndcode: `v09_37_01_03p01` (SBN2021C), `v09_37_02_01` (SBN2022A), `v09_46_00` (current) -- icaruscode: `v09_37_01_03` (SBN2021C), `v09_37_02_01` (SBN2022A), `v09_46_00` (current) +- sbndcode: `v09_37_01_03p01` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_46_00` (current) +- icaruscode: `v09_37_01_03` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_46_00` (current) ## Quick Start Guide 1. Get a valid kerberos ticket with forwarding enabled (`kinit -f `) From 56eae14cbe6e4979ba8d08160110659e4707da19 Mon Sep 17 00:00:00 2001 From: eyandel Date: Mon, 4 Apr 2022 10:40:16 -0500 Subject: [PATCH 0087/1437] Rename SBND_DAQ_GettingStarted to SBND_DAQ_GettingStarted.md --- .../{SBND_DAQ_GettingStarted => SBND_DAQ_GettingStarted.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sbndaq_oldwiki/{SBND_DAQ_GettingStarted => SBND_DAQ_GettingStarted.md} (100%) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md similarity index 100% rename from sbndaq_oldwiki/SBND_DAQ_GettingStarted rename to sbndaq_oldwiki/SBND_DAQ_GettingStarted.md From b46532cb2c96e2f5afa66b7c28dd1914c9e156e7 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Wed, 6 Apr 2022 18:30:02 +0100 Subject: [PATCH 0088/1437] Create ReleaseNotes094700.md --- sbndcode_wiki/Releases/ReleaseNotes094700.md | 86 ++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes094700.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes094700.md b/sbndcode_wiki/Releases/ReleaseNotes094700.md new file mode 100644 index 000000000..ba90325a6 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes094700.md @@ -0,0 +1,86 @@ +--- +layout: page +title: ReleaseNotes094700 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.47.00 | 06 Apr 2022 | [ReleaseNotes](ReleaseNotes094700.html) | +| --- | --- | --- | + + + +sbndcode v09_47_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_47_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_47_00/sbndcode-v09_47_00.html) + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- + +* sbndcode PR 269: + * XArapucas Gauss filter+tunned hitfinder+amplitude variations + * Added a gaussian filter + tuned hitfinder for Daphne XArapucas test SER (with overshoot). + * Added amplitude fluctuations at detsim level fitted from data, see docdb 25332 + +* sbndcode PR 272: + * PMT trigger + * add in separate thresholds for coated and uncoated, add option for individual PMT thresholds + +* sbndcode PR 274: + * Set RootOutput parameter saveMemoryObjectThreshold=0 in several standard fcl files. + +* sbndcode PR 276: + * Add lite versions of various fcl files, dropping unused data products. + +Bug fixes +--------------------------------------------------- + +* sbndcode PR 267: + * Fix typo, not dropping SimEnergyDeposits as intended. + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_47_00 +* larsoft v09_47_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-04-06 Patrick Green : Merge branch 'release/v09_47_00' +* 2022-04-06 Patrick Green : Update to v09_47_00 +* 2022-04-06 Patrick Green : fixing typo, not dropping product as intended -- hgreenlee PR 267 +* 2022-04-05 Patrick Green : Merge pull request #274 from hgreenlee/greenlee_savemem_develop +* 2022-04-05 Patrick Green : Merge pull request #276 from hgreenlee/greenlee_wf_lite_develop +* 2022-04-01 Herbert Greenlee : Add reco lite fcl files. +* 2022-04-01 Herbert Greenlee : Add detsim lite fcl files. +* 2022-04-01 Herbert Greenlee : Add g4 lite fcl files. +* 2022-04-01 Herbert Greenlee : Add drop sequence fcls. +* 2022-03-18 Herbert Greenlee : Set RootOutput parameter saveMemoryObjectThreshold=0. +* 2022-03-30 Patrick Green : Add commented version number for CIs +* 2022-03-29 Patrick Green : Merge pull request #272 from SBNSoftware/feature/eyandel_pmttrigger +* 2022-03-29 Patrick Green : Merge pull request #269 from SBNSoftware/origin/feature/rodrigoa_Xarapucas_Updates +* 2022-03-29 Rodrigo Alvarez Garrote : typo, comment again cout +* 2022-03-24 eyandel : add in separate thresholds for coated and uncoated, add option for individual PMT thresholds +* 2022-03-22 Patrick Green : Merge tag 'v09_46_00' into develop +* 2022-03-21 Rodrigo Alvarez Garrote : Gaus filter for XArapuca, hitfinder tuned for Daphne XArapucas +* 2022-03-21 Rodrigo Alvarez Garrote : added Amplitude fluctuations + +sbndutil +--------------------------------------------------- + +* 2022-04-06 Patrick Green : Merge tag 'v09_47_00' into develop +* 2022-04-06 Patrick Green : Merge branch 'release/v09_47_00' +* 2022-04-06 Patrick Green : Update to v09_47_00 +* 2022-03-22 Patrick Green : Merge tag 'v09_46_00' into develop From cd17e9221bf5ad8fcb85e15f65e6f7b92bbc6638 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Wed, 6 Apr 2022 18:30:38 +0100 Subject: [PATCH 0089/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index a693692dd..91ab1652b 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_47_00` | Weekly release | [Release Notes](ReleaseNotes094700.html) |`v09_37_02_01` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370201.html) |`v09_37_02` | Production release SBN-2022A | [Release Notes](ReleaseNotes093702.html) |`v09_46_00` | Weekly release | [Release Notes](ReleaseNotes094600.html) From 8ac711fdb569fb941f4c9d3201746272d8420168 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Sat, 9 Apr 2022 10:49:05 +0100 Subject: [PATCH 0090/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 91ab1652b..9dd5054e4 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_37_02_02` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370202.html) |`v09_47_00` | Weekly release | [Release Notes](ReleaseNotes094700.html) |`v09_37_02_01` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370201.html) |`v09_37_02` | Production release SBN-2022A | [Release Notes](ReleaseNotes093702.html) From 33bd210ba83ffb42b4a1806d6b0a11f7a85f9f96 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Sat, 9 Apr 2022 10:50:04 +0100 Subject: [PATCH 0091/1437] Create ReleaseNotes09370202.md --- .../Releases/ReleaseNotes09370202.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09370202.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09370202.md b/sbndcode_wiki/Releases/ReleaseNotes09370202.md new file mode 100644 index 000000000..b11ce393c --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09370202.md @@ -0,0 +1,43 @@ +--- +layout: page +title: ReleaseNotes09370202 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.37.02.02 | 09 Apr 2022 | [ReleaseNotes](ReleaseNotes09370202.html) | +| --- | --- | --- | + + + +sbndcode v09_37_02_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_37_02_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_37_02_02/sbndcode-v09_37_02_02.html) + +Purpose +--------------------------------------------------- + +* Patch release for SBN-2022A + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_37_02_02 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-04-09 Patrick Green : Update to v09_37_02_02, patch release for SBN2022A +* 2022-03-30 Patrick Green : Update CMakeLists.txt From ee96e2edaa7e6b8331fbaaecdb2b38fd52acbff7 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:55:18 +0100 Subject: [PATCH 0092/1437] Create ReleaseNotes094800.md --- sbndcode_wiki/Releases/ReleaseNotes094800.md | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes094800.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes094800.md b/sbndcode_wiki/Releases/ReleaseNotes094800.md new file mode 100644 index 000000000..672b17c90 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes094800.md @@ -0,0 +1,53 @@ +--- +layout: page +title: ReleaseNotes094800 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.48.00 | 11 Apr 2022 | [ReleaseNotes](ReleaseNotes094800.html) | +| --- | --- | --- | + + + +sbndcode v09_48_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_48_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_48_00/sbndcode-v09_48_00.html) + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_48_00 +* larsoft v09_48_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-04-11 Patrick Green : Merge branch 'release/v09_48_00' +* 2022-04-11 Patrick Green : Update to v09_48_00 +* 2022-04-06 Patrick Green : Merge tag 'v09_47_00' into develop + +sbndutil +--------------------------------------------------- + +* 2022-04-11 Patrick Green : Merge tag 'v09_48_00' into develop +* 2022-04-11 Patrick Green : Merge branch 'release/v09_48_00' +* 2022-04-11 Patrick Green : Update to v09_48_00 +* 2022-04-06 Patrick Green : Merge tag 'v09_47_00' into develop From 5ce1ce0cf71b7107da9802851d8e8528f398e873 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:55:52 +0100 Subject: [PATCH 0093/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 9dd5054e4..aa06827c1 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_48_00` | Weekly release | [Release Notes](ReleaseNotes094800.html) |`v09_37_02_02` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370202.html) |`v09_47_00` | Weekly release | [Release Notes](ReleaseNotes094700.html) |`v09_37_02_01` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370201.html) From 63a8af91c89f1ce6a07133502b38688b928292c0 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Mon, 11 Apr 2022 16:19:06 -0500 Subject: [PATCH 0094/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 88ea5788b..8e227d9c9 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -6,6 +6,8 @@ title: SBND DAQ for the CRT \#\# open two terminal windows. For each - login as sbnd on sbnd-gateway01.fnal.gov + - ssh to sbnd-evb04 + - (optional: start a tmux session) - source "mstancar_launchdaq.sh" In one window, type "DAQInterface" @@ -15,6 +17,7 @@ open two terminal windows. For each - pmtx02 is the 1730 digitizer connected to link 1, in the Xarapuca crate on the right - crt2x2upstr is just what it sounds like - all 4 modules on the upstream (south) frame - crt2x2dwnstr is just what it sounds like - all 4 modules on the downstream (north) frame + - crt_test is the test setup on the A-frame - ptb01 is the trigger board Type ./run to start the run and type ./stop to stop the run From a66327ff1fb99de841e54fc90c8288276a7c92f8 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Mon, 11 Apr 2022 17:43:36 -0500 Subject: [PATCH 0095/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 8e227d9c9..2a09096a4 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -12,13 +12,17 @@ open two terminal windows. For each In one window, type "DAQInterface" - In the other window, look at the file "run" and find the line with setdaqcomps.sh + ------------- + In the other window, + (1) look at the file "run" and find the line with setdaqcomps.sh You will find a list of things that will be included in the DAQ run, add or delete what you (don't) need. - pmtx02 is the 1730 digitizer connected to link 1, in the Xarapuca crate on the right - crt2x2upstr is just what it sounds like - all 4 modules on the upstream (south) frame - crt2x2dwnstr is just what it sounds like - all 4 modules on the downstream (north) frame - crt_test is the test setup on the A-frame - ptb01 is the trigger board + (2) check the file boot.txt, things work best if the machine where you are running the daq is the one assigned to the eventbuilder and dispatcher here + ------------------------- Type ./run to start the run and type ./stop to stop the run From f1c3121c57bde16e978cbeb2886288d0b135143e Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Tue, 12 Apr 2022 18:35:30 +0100 Subject: [PATCH 0096/1437] Create ReleaseNotes09370203.md --- .../Releases/ReleaseNotes09370203.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09370203.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09370203.md b/sbndcode_wiki/Releases/ReleaseNotes09370203.md new file mode 100644 index 000000000..5dbee86f5 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09370203.md @@ -0,0 +1,45 @@ +--- +layout: page +title: ReleaseNotes09370203 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.37.02.03 | 12 Apr 2022 | [ReleaseNotes](ReleaseNotes09370203.html) | +| --- | --- | --- | + + + +sbndcode v09_37_02_03 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_37_02_03](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_37_02_03/sbndcode-v09_37_02_03.html) + +Purpose +--------------------------------------------------- + +* Patch release for SBN-2022A + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_37_02_03 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-04-12 Patrick Green : Update to v09_37_02_03, patch release for SBN2022A + +sbndutil +--------------------------------------------------- From 780ffcafa8affac1bfe7d99d2d527e0b26002c8f Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Tue, 12 Apr 2022 18:36:05 +0100 Subject: [PATCH 0097/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index aa06827c1..c80fd1b29 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_37_02_03` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370203.html) |`v09_48_00` | Weekly release | [Release Notes](ReleaseNotes094800.html) |`v09_37_02_02` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370202.html) |`v09_47_00` | Weekly release | [Release Notes](ReleaseNotes094700.html) From 9f368fb58ea4af89fe9d2c71932cf7f0e4ca0913 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 15 Apr 2022 10:31:22 +0100 Subject: [PATCH 0098/1437] Create ReleaseNotes09370204.md --- .../Releases/ReleaseNotes09370204.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09370204.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09370204.md b/sbndcode_wiki/Releases/ReleaseNotes09370204.md new file mode 100644 index 000000000..758124baf --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09370204.md @@ -0,0 +1,45 @@ +--- +layout: page +title: ReleaseNotes09370204 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.37.02.04 | 15 Apr 2022 | [ReleaseNotes](ReleaseNotes09370204.html) | +| --- | --- | --- | + + + +sbndcode v09_37_02_04 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_37_02_04](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_37_02_04/sbndcode-v09_37_02_04.html) + +Purpose +--------------------------------------------------- + +* Patch release for SBN-2022A + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_37_02_04 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-04-15 Patrick Green : Update to v09_37_02_04, patch release for SBN2022A + +sbndutil +--------------------------------------------------- From c8d1ff3362164c1b60fff12dd6bc22da59a65d47 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 15 Apr 2022 10:31:53 +0100 Subject: [PATCH 0099/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index c80fd1b29..51c32a48c 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_37_02_04` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370204.html) |`v09_37_02_03` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370203.html) |`v09_48_00` | Weekly release | [Release Notes](ReleaseNotes094800.html) |`v09_37_02_02` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370202.html) From 863913ddd1b1b23fcfd4c735993e701952b3c92f Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 15 Apr 2022 11:38:38 +0100 Subject: [PATCH 0100/1437] Create ReleaseNotes094801.md --- sbndcode_wiki/Releases/ReleaseNotes094801.md | 102 +++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes094801.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes094801.md b/sbndcode_wiki/Releases/ReleaseNotes094801.md new file mode 100644 index 000000000..af5b6cf35 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes094801.md @@ -0,0 +1,102 @@ +--- +layout: page +title: ReleaseNotes094801 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.48.01 | 15 Apr 2022 | [ReleaseNotes](ReleaseNotes094801.html) | +| --- | --- | --- | + + + +sbndcode v09_48_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_48_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_48_01/sbndcode-v09_48_01.html) + +Purpose +--------------------------------------------------- + +* Weekly release + +New features +--------------------------------------------------- + +* sbndcode PR 255: + * update pandora settings to persist neutrino id features + * this PR makes the required change to the pandora settings file to use the functionality in PandoraPFA/LArContent#189. + +* sbndcode PR 264: + * The functionality in sbndcode to run the new CRUMBS tool which lives in sbncode. + * CRUMBS is added as a producer to the standard and standard+sce caf workflows + * SCE versions of the crt hit and track matching are added as they are needed as inputs + * sbndcode is pointed to a new version of sbnd_data (v1_12_00) containing the weights file for CRUMBS's BDT + * Links to main PR SBNSoftware/sbncode#250 + +* sbndcode PR 275: + * Add fcl testing framework based on icarus fcl testing framework + +* sbnd_data: + * Adds CRUMBS' BDT weights + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +* sbncode v09_48_01 +* larsoft v09_48_01 +* sbnd_data v01_12_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-04-15 Patrick Green : Merge branch 'release/v09_48_01' +* 2022-04-15 Patrick Green : Update to v09_48_01 +* 2022-04-15 Patrick Green : Merge remote-tracking branch 'remotes/origin/feature/hlay_crumbs' into release/v09_48_01 +* 2022-04-15 Patrick Green : Merge remote-tracking branch 'remotes/origin/feature/hlay_writeNuIdFeatures_release_SBN2021C' into release/v09_48_01 +* 2022-04-15 Patrick Green : Merge pull request #275 from hgreenlee/greenlee_fcl_test_develop +* 2022-04-11 Patrick Green : Merge tag 'v09_48_00' into develop +* 2022-03-29 Herbert Greenlee : Add fcl testing framework based on icarus fcl testing framework. +* 2022-02-21 Henry Lay : Ensure persistency of MVA features +* 2022-02-21 Henry Lay : Variety of improvements to CRUMBS +* 2022-02-10 Henry Lay : Update pandora settings to persist neutrino id features +* 2022-02-01 Henry Lay : Merge remote-tracking branch 'origin/develop' into feature/hlay_crumbs +* 2022-02-01 Henry Lay : Merge branch 'feature/hlay_crt_reco_changes' into feature/hlay_crumbs +* 2022-02-01 Henry Lay : Update DetSimAna module for new namings +* 2022-02-01 Henry Lay : Return functions +* 2022-01-31 Henry Lay : Remove unused functions +* 2022-01-31 Henry Lay : Improve boolean logic +* 2022-01-31 Henry Lay : Improve boolean logic +* 2022-01-31 Henry Lay : Amend CRTGeoAlg to cope with change of coordinate system +* 2022-01-27 Henry Lay : Delete unused functions +* 2022-01-14 Patrick Green : Update to v09_42_00 +* 2022-01-10 Henry Lay : Protect upstream +* 2022-01-07 Henry Lay : Further fix to channel map functions +* 2021-12-23 Patrick Green : Update to v09_41_00 +* 2021-12-21 Henry Lay : Update ci_tests.cfg +* 2021-12-21 Henry Lay : Reduce limit on weighting universes +* 2021-12-21 Henry Lay : Due to comparison script change NEVENTS to 5 for CAF tests +* 2021-12-21 Henry Lay : In update builds you also need to ensure that we compare the correct files +* 2021-12-14 Henry Lay : Correct naming structure for CAF ci tests +* 2021-12-21 fran-nicar : Change voxelization scheme for hybrid model +* 2021-12-01 Herbert Greenlee : Update AnalysisTree_module.cc. +* 2022-02-01 Henry Lay : Add CRT matching, POT tracking and separate nu & cosmic workflows +* 2022-02-01 Henry Lay : Merge remote-tracking branch 'origin/bugfix/hlay_more_crt_segfaults' into feature/hlay_crumbs +* 2022-01-12 Henry Lay : Add tree, simplify and add flash match +* 2022-01-07 Henry Lay : Start building crumbs + +sbndutil +--------------------------------------------------- + +* 2022-04-15 Patrick Green : Merge tag 'v09_48_01' into develop +* 2022-04-15 Patrick Green : Merge branch 'release/v09_48_01' +* 2022-04-15 Patrick Green : Update to v09_48_01 +* 2022-04-11 Patrick Green : Merge tag 'v09_48_00' into develop From cd7e98be5a78c3426ab3042c8cef1371c5100a11 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 15 Apr 2022 11:39:05 +0100 Subject: [PATCH 0101/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 51c32a48c..a93f02c38 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_48_01` | Weekly release | [Release Notes](ReleaseNotes094801.html) |`v09_37_02_04` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370204.html) |`v09_37_02_03` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370203.html) |`v09_48_00` | Weekly release | [Release Notes](ReleaseNotes094800.html) From 180e9908d27f5aae1cfa76a29d92781680d34021 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Mon, 18 Apr 2022 14:13:59 -0700 Subject: [PATCH 0102/1437] Link formats for ICARUS geometry page --- icaruscode_wiki/Detector_geometry.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index fe17b3301..ba2070d07 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -366,6 +366,6 @@ Roughly, the BNB target is about 600 m upstream of the detector, i.e. at `( 0, 0 ### Neutrinos from Main Injector target and decay pipe (NuMI) -ICARUS position w.r.t. NuMI coordinates is described in SBN-doc-22998 (Aug 2021). -Detector position for MC was updated in the following pull request: https://github.com/SBNSoftware/icaruscode/pull/230 +ICARUS position w.r.t. NuMI coordinates is described in [SBN DocDB 22998](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=22998) (August 2021). +Detector position for MC was updated in the [`icaruscode` pull request #230](https://github.com/SBNSoftware/icaruscode/pull/230)/ From 6db8bf8720c515160b491e7849ff382947601b14 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Fri, 22 Apr 2022 08:40:09 -0500 Subject: [PATCH 0103/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index 0537239d6..6f83c9ef2 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -5,7 +5,7 @@ title: SBN Continuous Integration and Validation Wiki hero_height: is-medium --- -Welcome to the SBN CI & validation main page! If you just want to run a validation test for your pull request, continue reading the Quick Start Guide below. For more information, check out the links at the bottom. +Welcome to the SBN CI & validation main page! If you just want to run a validation test for your SBNSofware pull request, continue reading the Quick Start Guide below. For more information, check out the links at the bottom. ## Outages #### sbndcode @@ -29,11 +29,11 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati ``` source /cvmfs/.opensciencegrid.org/products//setup_.sh ``` -4. `setup sbnci v09_46_01 -q e20:prof` +4. `setup sbnci v09_46_02 -q e20:prof` 5. `source get_proxy.sh` 6. To validate your code, you will need to provide the following. - Validation workflow (`tpcreco`, `tpcsim`, `pds`, or `crt`) -- From `SBNSoftware/` only, a branch or list of branches (`repository1@branch1 repository2@branch2 ...`) +- From `SBNSoftware/` only, a branch or list of branches (`repository1@branch1 repository2@branch2 ...`) or from `LArSoft/` if it's a tag of the form `LARSOFT_SUITE_vXX_YY_ZZ` - The approved reference tag that you want to test your branch(es) against Test the CI workflow with a small sample (pass flag `-t or --test`) using the executable, `validate.sh`. From 9bd60b59e5bcb9ce1dad8b842c575d2ad808321b Mon Sep 17 00:00:00 2001 From: Chris Backhouse Date: Fri, 22 Apr 2022 17:47:15 +0100 Subject: [PATCH 0104/1437] Update versions --- sbndcode_wiki/WebEVD_for_SBN.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sbndcode_wiki/WebEVD_for_SBN.md b/sbndcode_wiki/WebEVD_for_SBN.md index 595c3e4e9..a0986a86c 100644 --- a/sbndcode_wiki/WebEVD_for_SBN.md +++ b/sbndcode_wiki/WebEVD_for_SBN.md @@ -4,11 +4,11 @@ WebEVD is available as a ups product. You will need to set it up, along with a c source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh source /cvmfs/icarus.opensciencegrid.org/products/icarus/setup_icarus.sh - setup webevd v09_08_00 -qe20:prof - setup sbndcode v09_39_01 -qe20:prof - setup icaruscode v09_39_01 -qe20:prof + setup webevd v09_08_06 -qe20:prof + setup sbndcode v09_48_01 -qe20:prof # depending on + setup icaruscode v09_48_01 -qe20:prof # desired expt -These are latest versions as of December 2021. You may be able to use newer versions. +These are latest versions as of April 2022. You may be able to use newer versions. ## Running From e7790e2bb1c2205a00219c749a7512187f486c94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 29 Apr 2022 18:13:37 +0200 Subject: [PATCH 0105/1437] Create ReleaseNotes094900.md --- sbndcode_wiki/Releases/ReleaseNotes094900.md | 71 ++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes094900.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes094900.md b/sbndcode_wiki/Releases/ReleaseNotes094900.md new file mode 100644 index 000000000..d4d5046a7 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes094900.md @@ -0,0 +1,71 @@ +--- +layout: page +title: ReleaseNotes094900 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.49.00 | 29 abr 2022 | [ReleaseNotes](ReleaseNotes094900.html) | +| --- | --- | --- | + + + +sbndcode v09_49_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_49_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_49_00/sbndcode-v09_49_00.html) + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +* Reverted CRUMBS merge: + * Incorrect branch was merged + * To be replaced with SBNSoftware/sbncode#278 + +* sbndcode PR #278: + * CRUMBS develop + * adapted version of PR #264 for SBN2022A, changes to be compatible with develop + +* sbndcode PR #279: + * Reduce n-universes for weights in the CI + * Since the extra flux weights were added to CAFMaker the nucosmics CAF test has been taking a very long time to complete. As was decided when this test was originally added we opted to reduce the number of universes to 5 for the CI so it tests the functionality without spending a huge amount of time setting up the job. + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_49_00 +* larsoft v09_49_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-04-29 fran-nicar : Merge branch 'release/v09_49_00' +* 2022-04-29 fran-nicar : Update to LArSoft version v09_49_00 +* 2022-04-29 Patrick Green : Merge pull request #278 from SBNSoftware/feature/hlay_CRUMBS_develop +* 2022-04-28 Patrick Green : Update ci_tests.cfg +* 2022-04-26 Patrick Green : Merge pull request #279 from SBNSoftware/feature/hlay_ci_less_universes +* 2022-04-25 Henry Lay : Reduce n-universes for weights in the CI +* 2022-03-18 Henry Lay : Correct CRT match labels for SCE CRUMBS +* 2022-03-16 Henry Lay : Rename fcl +* 2022-03-16 Henry Lay : Run SCE versions of crt matching +* 2022-02-23 Henry Lay : Run CRUMBS in cafmaker +* 2022-04-15 Patrick Green : Revert "Merge remote-tracking branch 'remotes/origin/feature/hlay_crumbs' into release/v09_48_01" +* 2022-04-15 Patrick Green : Merge tag 'v09_48_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-04-29 fran-nicar : Merge tag 'v09_49_00' into develop +* 2022-04-29 fran-nicar : Merge branch 'release/v09_49_00' +* 2022-04-29 fran-nicar : Update to larsoft version v09_49_00 +* 2022-04-15 Patrick Green : Merge tag 'v09_48_01' into develop From 048b21a078cf8a738b5e3970ec951fefceb90cd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 29 Apr 2022 18:14:56 +0200 Subject: [PATCH 0106/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index a93f02c38..c82c9e150 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_49_00` | Weekly release | [Release Notes](ReleaseNotes094900.html) |`v09_48_01` | Weekly release | [Release Notes](ReleaseNotes094801.html) |`v09_37_02_04` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370204.html) |`v09_37_02_03` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370203.html) From 3a87545208eca6cf6d0ff566bb509e67f4b65e1e Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Fri, 29 Apr 2022 18:40:08 +0100 Subject: [PATCH 0107/1437] Update Write_files_to_SciSoft.md --- sbndcode_wiki/Write_files_to_SciSoft.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sbndcode_wiki/Write_files_to_SciSoft.md b/sbndcode_wiki/Write_files_to_SciSoft.md index 81a716f0a..34dff73fe 100644 --- a/sbndcode_wiki/Write_files_to_SciSoft.md +++ b/sbndcode_wiki/Write_files_to_SciSoft.md @@ -11,8 +11,7 @@ Write files to SciSoft - Currently sbndcode, sbndutil and sbnd\_data can be written to scisoft -- You will need permission to copy files to SciSoft, this can be - gained by submitting a service desk ticket. +- You will need permission to copy files to SciSoft, these can be requested by submitting a ticket to scisoft. See instructions here: https://scisoft.fnal.gov/ - You will need the scripts copyFromJenkins and copyToSciSoft which can be obtained here (). They are also located in the [attachments folder of the wiki](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/sbndcode_wiki/attachments). @@ -27,11 +26,10 @@ Copy sbndcode and sbndutil to SciSoft version. (Like the `releases/` directory I usually keep the last 6 builds). -- Fetch results of Jenkins from both e19 and c7 builds using - - copyFromJenkins -q e19 sbndcode-release-build - copyFromJenkins -q c7 sbndcode-release-build +- Fetch results of Jenkins from both e20 and c7 builds using + copyFromJenkins -q e20 -q c7 sbndcode-release-build + - This will fetch the build artifacts (tarballs and manifests) - There should be one manifest for each binary flavour, and one From f5f094931205f5a684c7819500f31d76504932c9 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Apr 2022 15:19:04 -0500 Subject: [PATCH 0108/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 2a09096a4..9b086e8e5 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -1,9 +1,11 @@ ------------- -layout: page -title: SBND DAQ for the CRT \#\# +------------------------------ + SBND DAQ for the CRT \#\# ----------------------------- + +instructions for running the DAQ: + open two terminal windows. For each - login as sbnd on sbnd-gateway01.fnal.gov - ssh to sbnd-evb04 @@ -12,7 +14,6 @@ open two terminal windows. For each In one window, type "DAQInterface" - ------------- In the other window, (1) look at the file "run" and find the line with setdaqcomps.sh You will find a list of things that will be included in the DAQ run, add or delete what you (don't) need. @@ -21,8 +22,9 @@ open two terminal windows. For each - crt2x2dwnstr is just what it sounds like - all 4 modules on the downstream (north) frame - crt_test is the test setup on the A-frame - ptb01 is the trigger board - (2) check the file boot.txt, things work best if the machine where you are running the daq is the one assigned to the eventbuilder and dispatcher here - ------------------------- + * if PULL is after any of those names, then the system data is pulled by the DAQ instead of pushed to the DAQ. Only one system can push data. + +(2) check the file boot.txt, things work best if the machine where you are running the daq is the one assigned to the eventbuilder and dispatcher here Type ./run to start the run and type ./stop to stop the run From 2f7410238c6f8d5a0352723aae91e0a86e51f282 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Apr 2022 15:59:59 -0500 Subject: [PATCH 0109/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 32 +++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 9b086e8e5..11688dd31 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -1,10 +1,32 @@ ------------------------------ - SBND DAQ for the CRT \#\# +## other setup info ----------------------------- +1730 digitizer channels: +even channels have no inputs +ch1: - TRIGGER from PTB to 1730 +ch3: - RWM +ch5: - RWM +ch7: - RWM +ch9: - BES +ch11: - RWM +ch13: - RWM +ch15: - TRIGGER from PTB to 1730 -instructions for running the DAQ: +WR TDC inputs: +ch1: t0 reset from CRT fanout (32 ns cable) +ch2: t1 reset from CRT fanout (32 ns cable) +ch3: empty +ch4: empty +ch5: empty + +CRT T0 reset: PPS +CRT T1 reset: BES from AD's fiber to TTL converter + +------------------------------ +## DAQ instructions for the CRT \#\# +----------------------------- open two terminal windows. For each - login as sbnd on sbnd-gateway01.fnal.gov @@ -30,6 +52,12 @@ open two terminal windows. For each The data will magically appear in /daq/scratch/data/. It is suggested to make a directory for your data here and move it there at the end of the day each day. + (3) setup - specified in knownboardreaders.txt + pmtx02 boardreader is on sbnd-pds03 + crt board readers are on sbnd-pds05 + WR board reader is on sbnd-clk01 + PTB board reader is on sbnd-ptb01 + ------------------ How to debug things when the DAQ crashes. . . in the window where the DAQInterface was running, look through the output to the screen for something like this From 5c07455607226010a9ad6c03abf5098d24db3898 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Apr 2022 16:00:38 -0500 Subject: [PATCH 0110/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 11688dd31..0e4f15b6d 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -4,24 +4,39 @@ ----------------------------- 1730 digitizer channels: + even channels have no inputs + ch1: - TRIGGER from PTB to 1730 + ch3: - RWM + ch5: - RWM + ch7: - RWM + ch9: - BES + ch11: - RWM + ch13: - RWM + ch15: - TRIGGER from PTB to 1730 WR TDC inputs: + ch1: t0 reset from CRT fanout (32 ns cable) + ch2: t1 reset from CRT fanout (32 ns cable) + ch3: empty + ch4: empty + ch5: empty CRT T0 reset: PPS + CRT T1 reset: BES from AD's fiber to TTL converter ------------------------------ From b638dd303d67d3069215dd283e6f1fe40655e629 Mon Sep 17 00:00:00 2001 From: gputnam Date: Fri, 29 Apr 2022 16:51:54 -0500 Subject: [PATCH 0111/1437] Update sbndqm build instructions --- sbn_online_wiki/sbndqm_Wiki.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/sbndqm_Wiki.md b/sbn_online_wiki/sbndqm_Wiki.md index 6cc1610cf..852a340f0 100644 --- a/sbn_online_wiki/sbndqm_Wiki.md +++ b/sbn_online_wiki/sbndqm_Wiki.md @@ -34,7 +34,9 @@ To setup a development environment in an an offline machine (like `icarusgpvm, s source /cvmfs/fermilab.opensciencegrid.org/products/artdaq/setup source /cvmfs/icarus.opensciencegrid.org/products/icarus/setup_icarus.sh #(or /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh) -setup sbndqm v0_07_07 -qe20:prof #replace with your desired version here! +setup sbndqm v1_02_00 -q e20:prof #replace with your desired version here! +setup mrb +export MRB_PROJECT=sbndqm mkdir cd @@ -50,9 +52,11 @@ mrb i -j8 To setup a development environment in an online machine (like `icarus-evb01`, `sbn-daq01`): ``` -source /daq/software/products +source /daq/software/products/setup -setup sbndqm v0_07_07 -qe20:prof #replace with your desired version here! +setup sbndqm v1_02_00 -q e20:prof #replace with your desired version here! +setup mrb +export MRB_PROJECT=sbndqm mkdir cd From 2e66666656b4c27e7ebf4deb44199bba610475f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 2 May 2022 15:02:56 +0200 Subject: [PATCH 0112/1437] Update Building_a_release_on_Jenkins.md --- sbndcode_wiki/Building_a_release_on_Jenkins.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Building_a_release_on_Jenkins.md b/sbndcode_wiki/Building_a_release_on_Jenkins.md index 152e9bf29..90749882c 100644 --- a/sbndcode_wiki/Building_a_release_on_Jenkins.md +++ b/sbndcode_wiki/Building_a_release_on_Jenkins.md @@ -34,6 +34,7 @@ Instructions - You will also need a [CILogon certificate](https://cdcvs.fnal.gov/redmine/projects/sbndcode/wiki/Setting_up_access_with_CILogon_certificate) loaded in your browser. + - NB: When generating ther CILogon certificate, use the Fermilab identity provider rather than the institution. - Go to - Configure the build. From ce21fac3cd881c1b589ccaa05d230cd7e7302975 Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Mon, 2 May 2022 16:30:58 -0500 Subject: [PATCH 0113/1437] Create particle_gun_tut.md --- SBNYoung/particle_gun_tut.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 SBNYoung/particle_gun_tut.md diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md new file mode 100644 index 000000000..4f8024909 --- /dev/null +++ b/SBNYoung/particle_gun_tut.md @@ -0,0 +1,6 @@ +--- +layout: page +title: Getting started in SBND +--- + +# Viewing charged particles in SBND using a particle gun generator and analyzer module From f45ad3af900c0b48e497f637f1f0e2995250ce61 Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Mon, 2 May 2022 16:45:22 -0500 Subject: [PATCH 0114/1437] Update particle_gun_tut.md --- SBNYoung/particle_gun_tut.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 4f8024909..a8e5e68aa 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -4,3 +4,8 @@ title: Getting started in SBND --- # Viewing charged particles in SBND using a particle gun generator and analyzer module +(Requires some intro to reco. chains, c++, python and a working sbnd code. I ran on v09_43_00) +## Particle Gun +The particle gun is a simple way to simulate a single particle, or multiple particles at a time in the SBND detector (This can be done in ICARUS as well but I've done it here in SBND). Let's look at a particle gun .fcl file and see what's going on! + + From aaf8d9e7a5362396cd0eba2a4b953941b11056cc Mon Sep 17 00:00:00 2001 From: bear-is-asleep <67704640+bear-is-asleep@users.noreply.github.com> Date: Tue, 3 May 2022 10:35:40 -0500 Subject: [PATCH 0115/1437] Check image --- ...nal-principle-of-the-MicroBooNE-LArTPC.png | Bin 0 -> 87182 bytes SBNYoung/Images/coords.png | Bin 0 -> 83688 bytes SBNYoung/particle_gun_tut.md | 24 +++++++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 SBNYoung/Images/Operational-principle-of-the-MicroBooNE-LArTPC.png create mode 100644 SBNYoung/Images/coords.png diff --git a/SBNYoung/Images/Operational-principle-of-the-MicroBooNE-LArTPC.png b/SBNYoung/Images/Operational-principle-of-the-MicroBooNE-LArTPC.png new file mode 100644 index 0000000000000000000000000000000000000000..4e06b77a90e418f198761427c959a9f27d418a5b GIT binary patch literal 87182 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

254y_x9F_)R_Ya4(SYY*$67x34DE#a2 z*q3?g0%gJWI`-h36U`og47B*~$&EFQIgI6pY zHxf20KBYU^*j5W)<;AR@230}A+8=PhO|mp3t2>%87t3xnv5CYBvj8zJ)YKpy2?j+X zo~x$Sg4?9)tM`}V-48QNu1>MQNys}Rn-s@AC17)pjJ6Jx$e2>pxm$^75J97QtM93v z!i5eE%6N9!6K5U%0yP3@F26&Cr#{K zjNS`h;GC+=+rsjc+^uZZDO~459^U(GUz)zS2GbjSz`8Zu@CZiSq0@;B`5okTHb;`~ zQ^*@ZbD9b!=OjX7TCFb#R1eY$sL!YPvV77y(c>pfiD2Ut0RVxpR#!PsIeC2IsU@8%3iaAi%p&<%a*nh$Lg5vb!2#RVgoFGOZY5r4Esa!5Jop{CP^(mx}3iYdkJwu)FaW=wzbpAKNbZCN-{wpH5>6UZ2K@!U5%FrV&*)Pc3|)A_M>X0Etu9L zygN0~TmmMqUTxqBy7f9%QKZ&ik+U@C{y8!vQh5$Tg&y;y z8s%IiDhIg|kUr%o`1(Tunhf?ytVnvTl1-Wf1^{%r-)$xK*}7}oI(V%K5_cvwxu`Bi5^;+1 zSQQ}vyTZ%-5#OM58yN>GS}})rB4G`9nf^scS^(!Cq3Orf$dzC<>q|E>uEy9$wuOgs6`-z;XcLR{<6<9H4jWxVHCqb$8&-)HnoZr&k9joB0f`0Exnu<+(0$W& zxYp%&9{rfmGQjW9Gwa}~Sp$k`(!2^j*e!`C7~a_F8OA=+P%*A%0Y4%6bLN=rESKN| z?&Bd|m|?RJKMoJXmSK5SUuZcnsJZ>vtLR6}38^pofwPSOd_D=~nlo;_Gy{`)#~Nzjfp zP6_mRyEA8T*`^XPW)8^m~O-$*bko6oF1=k{wl`ywFsMcGiPilTUwACK~r! zaI25_BR<8CU9;r1bmfh#lsThnRJh$LT)pxbEhT^zoPgDM0(I5-8-`0(0%=@*(_HH! zG~PZMWxO$1+qH1nns?AIpOiSLv`ZJ_IcIvybYTb5SXt;1Jzl1DX|76y(lk%ei6E%oCNcuR4VRn-$@3AW2e6_rcHUNlKG`XVQ9MzhfPA6iC7} z){3Nj#!_P`k1R3~7%{tiTd5cPhcGx=xR;dpPSSp;0@$fD@lq;CSz@-p*pd1bLz1R@ znT_$gNR)pOxA zRExPhW>?ZwLWH=6z!Omm3APaz-)#&HX^5BWCqJ8`Miw-Dg1434P)yGACmtpVYKtmp z*(qjeev_{dR%hsh-#fPx}_nl^Y8FyBjM6sZEnXA6jzrIsWmVk~>aow(mFhIo<3=Mc%JT zIg@o}yL<)h?Re5;C9Tgg=i9wKkWZyo)gn|m{_w#*Ow~Ti|8Nsd8Zs<>#OS3*64UKA z*4igg^%4_G=liQol5w0P83(Gs&Ph-hxU^b>(R8%bVR3o03$i?T1p!O2gIAag6z)26 zSu>m5Z$2|ihlguD@w;;a!i5M+x;c|KPVs&7kq{yQ@i zbN{mwOU27XKUodB#{*iSWgP3?OZ4*7{tji+p_c#?0UEE1&EswRo$(> z5(>CS*jJ_|?(2=EB-k7OOpG=ko6u8IgbC87h)m5FZ@hI#GiXXFs5}=qQRX?EsdH=R z%GBgxxvV3XP5SXau1%<2oMzm%Er8gWbpGFk zCpBYPCS?7J-JVXI(>wxHhrH?X2&dxJGAyhXf}rB{cw{pp!#-pfswH~hzPj4Sj_lb~ z;P-mZKM$i8z@GZQ(f;KB!eGkQc_7eNUJmeCq!pnpj8Dccmd*HS0NP0(B1-=%?h75R zn60-ItO>oewR~-Wp?)`fynl=5f0}#qWTiYTHrNbAplveV3m}3uW`4LbZ#TkvMm?gt z*`W%#X0n>3i~29tov71hDT(fMmA*(m3^*nWVp8E<)*+72w5^)qL7J*l3vfMTVt)@> zRoBB642c|%6fvOY67Gxj+OTBQWUxo9o!+RZtKLDOVJJ`n0KC=X7SlyY8ie>~Ct5-r z@4_zhZAYJpc}@gY)x~)Kd3!K@3bjho@=*lzhKUxrJ>7-$rmSNqa}UdJlRD;OVl{|K zm^+Bw*{!_0BdDDnh}jlWRG$B*nHLec2tzKYbcAkdJP+UeM6B~mO5?feYN%NDeRj(}wJW1%ewxp+7%;;8P#{ zitMO9oqgO==0PpuF;Val>qBcH!W@68b4hD zam8^hG?kLzxNp)3aRQ6soogGmKQf_9dCHN$13oz+1DdgtQZ-@yJg*tP!#a-cs*0s~ z>WZgVf4!LU)Qow;kKuUyFl!^-^0NCLg>!5nvp-qEa+00ceuSX21k;bmt)Tu?zOG-P z>+*I{V)FMC9}l04Lu%+rpwd&G-)UqY*pYOxc$ocpoEZoV5$lVHs#WIR;qbS7y$|sNFB~NVm9IpcmJ{q|K)3%uFDNjz5btLNPICsT!cAJv5GBzLVT*cr>l>EFpae?LoB_J+x87D>mb#-VyTAuX<50KV;IKPC@T z_~>)USpe75&hxP9JM*@kThGsXbG>BF}p{?QF z!CwQ0WzeogBb^vZn>u`+xG_G*VRx z7ul&DqWlfqD&vg+uXx3&rq_8-R3!DpYbY_PR#nz*0!Ak8buO5!B?B%C+qGhmORY5e zs;iw1)eJSJ^P47+JSo32Uq;9iB;<%wM0sVzhF8KYAZdhgKfbx?|5G^D zIVkht_%Ap$>(M4$7%QVp&?x(mI|#J9q8-M8fsp&-a68+7M&^JG@jD%jDWps1X*0oa z59~cn&TpsQ^5U&5O2I>`1kgPu0Ut8)gG)<+7sH^SLNy-0@Lg^0?w=HY5bysWUGZT9 zeEisp(kYBAb2iV?ZA0>*q2jh)G$3{Cm zl2uK?aywHvrfW>ktTYNO++>+CX$4shc%+t~4%@?KRJw`S0M%yqsW5A=Xi+-SE{sC&cbWK_ zBFQs&QD$cNSnABrbt+7g3YFYKLO3_a6fJLwYHGQ$atzmWP$XLe*NxUHJsKO|rp#gw zi50H+8mX;d?`{-Zl5XZ<{=fFzLb~DP7aRaNYrh`Q-ys)H)eAS=3S&M?z3*HAZDq+? zd2{A_!LfIQ-RmK2mBrpM<$-zJeB3po6&M~cCXnaI0!)f7D51v0(`5?bnhG$q3MVA)NZb6O9T5tiLZE_atL$=7j2P(Qx z#4|K_08us_=zD{Kzi@sq`;ao6Jm+|2v z7I`jyoZa3#+mKHx1S3VhMX|}K`;;eGFV4-xYKmm0-k6+C?k3bE;Zc2&323|#zD!YI zy~*Iycq&sFg;LsE5Z!6|m%YkF3sc$|W+S=nk(SBjTjMY&zeU-*G8XS+lpXLYCK0$1PQfZ}jV|^JP@f!3)d@UjSIe4%?z6LXJAy>TthHx-jFG&`GwN>W>mX zi^02y1`0V`n0ahvB1%cIkSArf6*i7Yl3YWxM57Zc1#G{lE|hN8->5ia1jf`I_x@-1 zqf%WBCeKhI^os$TKmk}N!h&N`D=u0I)yJQMk+D%d5>Zwff^v41W@O}*QB0hqK2~ouROO3b z89;}=st+)LH~QiaK`2@u|Al6N>FaPBe1R-SrzIv2B>IF@g-ve9ieA;zv%9?ME zXMR4!m&JH-jWVUP=C zb~V4Bxr69NX@S37*kMDdC_7M(;JEXNvVl>f_|MK>LDb&CRQVfA;YgyG`#^%6agsX^ zt3NueY^)S+!C+|ytNdxRXYVHpB;fN*Jr$#!EtoQ!RC?QsQM<5$>sG!FgeBRy6%Jxk zgOewkCP#AuLHjI2uAa{?y~;WsUK)0$e0aJXXUDeHq0Q+{o;>nQV%6=cjNi>$2uA)a zQ(Eb>5fMB@k_Zs87a2Fr56ut3p$_ppCzpJj%W^A4xPBKp)6a5!8|D!*jquz`K)$RP z`w(hr=CnO~LudRiKUHTfkoy%=E+f*kA z^f%T(iz-I*3HbVL>pPSe*9B_~2cdl`HY`!Y83Z~aG<$o>{f}h;_)tD&x+Kon+YdJ54^^RrF-$^Mve_?3WWM#D#~2qd;Hx)6;mL; z`!wo*fGJ)DeDDVlWDJtu2z%)jCNp8v=a%CB|0F*W*b5zF;i}UP9Gw(@Bo!u{Jwp46 z^xgKr$KL}7h<;G7BbOuiri_^bvf>8qFyfXWxw4wXAx|aZn`<4|TsBy9j^v8tz(0#tdjXAr58TBcP{EFwfwp5*xqQL?8b-Ng5Sb~>m6xm#Y z^cRl!uO6DR*dcH`LzllxYCT7WVrzAyKimUff)xRf#L`ljajmX!S^f1oYT%i z@?iII$!wcgQ7gAV>jmX9qT7N$vm;~DLXPh+E;`*j$8^fzC8y4Rvbay}Tr*Nj${q17 z#ra$F`M&OIlzfcV6YHMV@2_PlmI?`KR~Tq_!sZS5Su4lYMDVI;c&Fa71{<>6V=+e^ zhw}Y`n3y1GLR2&n6?RsCX0%WE6MpG01I!@Mdo@4rm6^yJa-1HY0@OSu&sKzLhL&Oo z`d^b|y2rg=kPBH5vhMp(_&qaZ`Qz@dI#R0dJTwm<_PHXh+y(kpH;v0M?=);(ZQIwH zCb@0%NriVT@jxKFH%FNWrLXfdFxm~H2sYwJg;Q?*G4wYWdY!>B%X!0QdL-31(#rC1 zk+B!;qANRU0Rmr*HuzT#d0E9|6xsrT>>3ufKZeAHFxUNG;lPm+S9$fBG{&4$VF|&K zlHAb<=~76Dm{YRQUZ{aBC*{R~`iw{zT2udSp;hzj6JFbjzp0(tKqMCziu*4wEJ0G=8(feCLXzvzfOuQlPN%7Ps)>;kB{I8w9Upl4&cWOSy5lN|4z z47-r>(Pr;CmqA@saMmTJj9u4@oV1D`tcg=fOCV=u4tv)Ho(E;}o1LlHdh~T&5M}Md zV9D3gL*Y5QqOX0veD+{#DeyVxoSlB60JMy5r2Gmg)Ox4;9b6F|Ge29tg*DQX6wd$t zz=dRdvZvSyEyHFp>~=S@B079K`#iZIooUJb&HZUNW@yVNzb!B66D8QM)+z|y6y;_>vWq3^{`Zamo;uNUPQfenX1CaF8gd>;O0?v+`@B!;8pg%&q&y#E-e!0`yW_>~uvrhdPrnA;*>FPV z6DERYRfqO+D{=QvT~=XL@BAIW+{l}FR+FU_{}{p+q3ofn2u(CB@;M10uLdp2C*XwMy}X53J>%^gqZL;g<^kNG%ocGo%|Q6NJP41jo;BM1oLNv| zfMZ4`+C_GekI|sc5W0SPE@f02iGQMJD6{_N&^5LjUDuPopTa`@!A^_#&@J)mU{1lD%G0eerwr*(5H3UaC$wM2lWW z*{FN$+&Jxb>1p4{bA5AZ08X#TdV`@p++ZU4m7Yd%q0x6Q@&q;fcUG^K^(}LMx4mmj z7zWKxJwcU8;=lK*#hwpB5yRDTqt=ma#1Zd=-ClVrlDQqgCzbS(4$Z|HM^wOPl`8t< zu+Qec(YP&d0^$o8K!4wnOj`4_7KtIjh$2wpav=M^N2ZEpXAr0lvEVy2O}bFc+x>x~ zFh_VZ+2NXgYxDZc2e%Z#PJ#57D4GEM<7@lSGvXYhS+$jU?@?t;%ITT4a7S=RX0QEd zg&G6#DhD$mR*{R;|RCnNWqF*kkZ*N2@Z#j?+#-?BQ7eV7tG&GkAl(GEv ziUppIE$lr}0OXMq;w>Y>T(TCvlR95pZlOjR=%ZYMK z$H%gbgHgh8o->aUNgc4qdWu)xoK%MM-(qUK*yH_sJfRwz%{Y?Nw;)9=+c+;em`o{8 zk?<3_#v^R` z%%6#oqb??Q{SO@05*hUe!O)nVyHn(7Le`=CBvk@voV>`L#-W+rW7UuYB0huIg9CW$ zhLJGdQ#PlpYB}@<6WL9P$C(4JHimbj(6cB=FcS+3C3sM=(p9hLEUc%R6xliZ#Z6V< zbvf)tuOLXshK-#%E~FY&dPZ$;Us>}V66^06%M>y`f-zGJ6ST4mTtCJVv36XY_aYCwpVmM{DG7>Zs=TSZ zjT~E~Tse#@{`&wY4fGr^J^bw<&wjF6#*E+(!63qL3+6yPaZmVBlFnHYek(9L3;`(X zP~>4%keHPk5;!$5uOWcN35mnc8{`S)Du1)g&v0Zw!Wv44$>=yA|Fq~A^F#qR^mu?beU(h9H8~Zp(SKex7Z1+$BQ*+q8f^51+?9rzUARg`ii# zmTIj_KQ<@t|;+ z8Y73(l%1#sEjjxFpV&$V4SNItdk%NHHSr!A5Gl3O&m&Nyo`MsUf#!&dmeTZfHQeRe3F5l#MMDdQg z1^V>>)Ia^5Q!L|tL&YxA>)RFx3{^Ry5nlZJc(?j^!wsOR7Tx;0xW-BQt)MpO0#D96 zWddPPr@n}?dktNw#UUOjkU0=s+ z2deU4hWpK9btADr6ISc_Ig<>rId1Ig&fFe%xIp=pKju!P|)^+W1&&QtRfUJI~wm|pjP99f5WP=&J)#;~P!5T|I%M`Q&Ji?3$?A`(~@ zS0E2T*UfxTIdek=OTheJ>EDCL4S#moxOx{Gz0~aAmA@D_J?~0r_cR?JrI-FOeLVun zUHl!y7L@bOoM7k8F)pTjIQkbX1fMX3 z(L?O2(U++uxLZZc$CGvvWT$R{r7h)J6Q`lp*$ro(1F@1(+~ zO{vKzexT0rwa<34CyJF@WX!azo8FAUz2XH;=YkS3Vv9PZQSwnop8bZHVtHj9z{tfj zU-!F0=ko3#Za|^WsfmwFSl)4Yo{I55~ zr*MihDPq~8ttVfS%GG^UXLa>1NOc&G>`rX{+KxN16TTZhxp1rB_izeHzp4wHiZXl| zGtm>=IKgT4kIV6n6*}C7ow4=)?(%_MXcS4-MgzJpL;Fw6t@8ALETe0}>#2TuCnwa8 zBKTYo+{7~RQ!NyPmC$GV6Z*iMPV2@s zMK>2kDTk3~-H^T3b7h+NSUm-m>o6v z>62=>)vWHXQfjBn0xM}25{0n$I3LB;e z(V4z;SPDG)>|j9C!JO8@WQiJRlTt{#-lQD(`*m>Yc zgU;&??*ZJbdS1vr7A1+kVt8v8i9LW!)w3a=yrjXclf~>Hycr?XT4E z)Jbpg6S@b3Ev-pVlU}D{l>08&KKZjaOqTHC0jp+>_!HqaJg^Ism50OaL7- zm_d>gmrUGo(`pnpY>SUX4H~7BNPhF08s8O{pZyv?9^18CWVbEu zi1~%rp)+ivgfD~&$jiE^Ns0~$EwzNzNOrsydE2VxQ$+J?akj({baIdrS+qk&gHaX=c0do)rS(C(nF#c|0^z7J2e`?LWWpCK@S)i;m3SoO0A(Y*4bjyCy$ zjlHyU=AP}Z7s+qm1d}K7L0BLvqs(VJ7`e{B3wEwGyDKAvXHD>b78$09aZY9tUr&>j z<{uQ5l~00+?+&Z;j4(hJl~;T`MSEAk3D?)Z^4cE3Qo4fGY_c?|Mk;;{Z_6Z4b}d}f zW~i;oLzrT_I936_OP)nMkG@oV0ht{CXmG|rJDPW0k*7zJ=Pbl82%R<~JHlFr=~;i! zI9Mw?GuwE!14;&SiP_q!k+l^(?+q&F$CLnCQXFver%r1PD( zT44;!Iu{gUNxP|n%s|7i^@P>o4!9z-p!8@&rnJuBpo#bDTM7>9CsS-${gGHN4cJ)gf{q1NCoePM(}YpfPqGgWGmqP8kOokIU7ecf zR`O8LTirz^12!>I6??)QW~08fn{NCL+sWtKf5v;7No_&DcQ(xMyTmvm zF5jFNAqOC^C0zy*cI)9IEu~vG=-4R^lOTbIa4@cW#*r#%;z0~WG|tUz`(5zqQPWp> zaC=hC$ZI>YT~!dayS?teF(C(3y@DUD-Z-jwP&RR)bSmim38FlgX9~HX3b( zsNDO5GDPXxzk{IE$&UEux+M3$>`op%L&iT=7WlsJr!KICU!Fnq^+iD7tjS8qx?7p7 zwkSL`$U(CNJ!aMeZO8Qf5xc0NZkU6N140miooP12SnY}CQCR^E8S_KWwjbeWzvam~ zL^-1xm#;5lA}`~x<~m;z{_*95HLrJ}S7D5UrH>HR-?F;bJPv94-->DZvQ-g(KG28f zfQ)!tFL&i<<8?gMXm5!g-;AAK$`Ag?TDyK+FZw~|4h>urg(kIVA~<`b1&EO|t*{+6 zSc*;b;oNOcEHv|AfA$vB9;x^82J)ZQGl%tHRY?DVJC@YPPG|W=S|LaboLyj8>%_%4t=xW9UdY7dSUevjS9%HgC`Q}H4f zi-SI_b7c>xB0%{lu45DWtACjXthXMIt{`HX{<10g;Qd5Cx7VyWF_z2c=EK1KU%u9F zMavPPI!ct*#Pj9PtKETQYH!MGM`q1iXL*}UDe_DHs!2ulJys0SiknN;&H#qu-rjS* zS@6nS>`lM(U@1=h;KF5yn!C5VBQ5$+X^zhb67>8a>fCS*+}i847`)Sk80c9K(Asnb zIR~Z^a@6Tl@Q2eF7qzraMY7EL@@e>pnf*(=BB`54KpRXgVOwDIUz`@jaghh=Rl_|o zVdN8F0!k)_-S)wVg-yVG8)`w#pdxEfIF{);3PnJ_c@c>12=jVq+I6Uur?8iKMCM># zc}}K4#OgB{#C7>(x<^Q_gc0YN4-6)#ArK+5Of#>S3?E)z8REDrkv zf|;{N@hZHGs1cNFwhQ7A<11{oD7Y^A(9IU|EkD_;{wFs4eTaxow5EZ`+x5_Q_V#6= zKk%Vov)&nV2cwRG9F5m8RUiJLcHw8Y!@80P)^2!f5*Tm6D~6{nLNf=P&Lu- zU}nRR4*dUF97D2=+HqXEdc9H8B?;-L*MfZ|NQ^=sQlRi!xjxTa{s3hLpZd9k&bOKI zanO7FyF>Jgg;**SD2Dmm91_pqzKGefWnah1vRrPuwKP6nPJwu~^^&+L|Hb0FHvIpw z02su!H$`U1rhtFUseOTn9V5g2wZ^bos0T-!TTaD8X1!6t=Spn4-MfiG>dg%0-#3$t z(O!>L%5Y18+IMTAS|VlP?6TUl!e8a{!WNmoaso0VmU1)@jc{k*+$Xh6mcU0prHS|OqTU75C z?dk5J8)@n89=b!i6eJ`iq@=sMdkCdOK#=a18XBc@=kxb6nMm1lLmk>4$-@V?0+t zIQ4s{^qVal%E|?{ z`|A+Yew9qTd&h++4-dT$>y6*V3J6*rM8s3oS#a)krOeZW$cbDWZKnwAtJZk;ds6X0 zGf}L#b4>*M4Xvkayly(eGVml2fi7Iyq-T&Va+I#($DH#f;$IK#V%0(fkQq>K%r5hw zlmDKc+|sI9zz3~34T&Q#e}LS&3x;TZzAt>{woSGfGg$%&e}3LhXxh=yOLy3-S$+C) zyRKW0J|o86*(X9)E-gB@n!D2GIcs*J17t5rJ)#CHcB~7ub&B8l)S@;8oIKqBFgLm6 zx)QzHnJ+dpUQucD+qk(5rP&gpyc3bI3jHZ|A|JoH{#CqXcHF@$UVRBAtui0Sg@~~4 z-7^=C2485!hv10*C2yGJ%kD~S)uh7U-RmJp2@I!SzWegtS`#VEL6)i;ypYOHW(yJ1 zK>pB5cN<(NiWVENcog)uo$>ju=barqj@s)cEY%XypxZ(-NfT@7S-h3EXIs=l@0<;R z1MdEfSt-qC;^6&a2=^Vmg|(IqO^SKUaw4YN&CNN#Exz^#ceSggZJqdIPiC6F(5xla z71ZGOsl#U)ou~QYzw=c)-018{63={(WbgKTU(&f!O+hJ=C+UTFG^aUTRYOyWAOc>~ zEidd9915V@&M*-y~QJyKXq!inx z^^YXH4J<#w^uGq_BL$3qWqfmRIG(;rK^YTstB0ncwX0`Rl0|+_5s1D{NTTACK5;dZ zJ(tCKEPk6R1%zmq+XrQCc*}hF32fxY?y>T>Ao3{%8^)f9p{_~qZB+lsC4upzb^>5P z+SJEylVT637o}&*iCzE;Z0=zXH9>ysrwid*kAHwB3;64Q^x48Y-ArZJi{@LOzhD6B z61U4A9Xp8P#!ipw=_SZ+Vw2RLK7qz1?X;Rjo@uYn9PyvmG3qtvT$RDsCpP_dcv^oS zJnePP1v5FC#hk>8ezv=w2Ig&(HUdsdR0$Q~*Ymx?p}mFO5Bh;eS%n?G{@GXO>RK_P zVmSd~5Ln8>*vTO3r*!+n44>pf*JRXX%L9HBc;{)AA$wV0I8poB@{a>KR9C8+PoLR` z13ti}nKLbg1>P^xNaq4>b{?qFhcM!nNl2%|Zt$D$iYM-il$gBtm5H4g;>-sngN{qj z5V*o9lUuY|n>tcTX2AYZbD#Gg;Hos5`ZrFYJlAp{|3svMQSwy^vLwnr<1{k3qo4mz z;&s}lEEOTeP%R%Xl!BtgM6$`fqIeJFNZlwvU-72zKu2P@EaHZooF+k3Xl@y)dhYy;<{d{a-Ygf2%vKQ$Yk{tfgrT;l8!QKDPU6%0XQ{!SG@ z*rkp&|FeZOUIVka32Hx2Qt8LS2(eq1MHBsYgnPsb`avIU)2#XKVlo#V_*6}XU?xuKr{%i zV@c+%2*mBo!vS1uda9=4fLABRW<||k(5}I*@;5JZBcRc&BVPfu@}dfxxIG5y1pc&1 z?MZqD*(rlqopb4m;`96O=0^v?dnspeHJg!+D8U;mXDl9H)~y;%&$ni;#@h3W$|p)d zCX6EGL?jV!hUHd6n54r3F}{XI+rLNVGK>F=!@XakbfP4UC+ISsdMX+FWqCdOBDZK< zqkMU9U`5-?`{Z)|PW_K-0!!cBac;i{AR39DJ@f6OP(Ave>|djx)`$;ex<7rd01N_2 z`5!GIQZm!30a(}KdZE)rHsm< zQnL6^*39I~0a`(Am^!j=pc+3voZy_j^J;KsUDxg%`W}OO{0{#W13?Uk(Yn?;-(tD$ z=G@km`@L&$6{QJhN<@Dao2WRxk`d^s)^6~~*`XyXf|m9Wi%F6-@WcYS2f{h%F!G{h zg)m3HOX{1VnalRAk;M(#P}Xelc!ybHxD7Yctrd~Wo3iBCVtzmn5gs9JsY|jVAjMGK%;VkjX<4S=2`&W?q7#c?8qR6PPfFBo zHxxbv&J-pf08s^y1D#TXgWwcWzRaa2L+@vP0Btwq-PEE%6VUXCzIia{)UCtS`ir&$ z>8~Rp1guSZ8c9~lAa?lsiwKmJVFHZG-1GQPF3`MjlICl{RF4~XogDo%9Hn|FtMD>!tA1-5FA6~VvUh@HeUm0wP&OJR9rIi` zpuGsX!!h{%%dzEbxy_1*vmA@*fxns>ACzB}Q!)>1AmBcf0?58xEYIPy@nL_;Uk^M9 zlIwRO-I_+4Q#M4ODp5fzSPZjDiQ|FkyX-Oj;M-tHd3fUXPR4o~WiD(~PjqXkII{H% z-l_WTJo({?QDArK&wP<+VnD?yQ^|dn$PuN}1rAU&j5fQe<_ZTmwT8@w0)h3bWp*3; zvIF;_ZN5}v&1dJCG`9!W=l7Tl(rlAMw5bVOKsl!4}KBV;j=zsI1)Ge_}z>Ve&k^ z{M#1+gvjym%)f63-X*42Q*AYDD1S#7Esah97Rr7BM=Ql{tXt5>6ygaB{}m1J0~F7r@O z4`##cJY*wRXf!Oq+T2WM+aIOW3}=2qumR`>VrhozQWk3Xmpc}Cpq3%UWb%FOJHrNq zzDh4exCa=)x6aO$l!=0 zoABxSeRH&wMYLM}9av&(=(DW3YYg6Et~1xA%{j!Je~Zjqr8Nbq&;%me*RInUgnSLwpxIw%@l6ez>Q^b@X=|w zjA1u*m6__*^Eq(eAIs?`>R*5iD6`edd8&Y!=`#a^Cr6DcYr9!YSsD?Fz^!7XeU~Di z&2|gn-05)mui+wT`41bmQ~R+dfRw7aWgw6RTYG=4{MIF`U&1dY91;1 zjexFUd=jpq$_OV zicda;BDYqmrn`RHz|Qoo(eGZ{S1=hxWsOg+g5qD{QFigPQ&HP7K(Y}NO4H}_dawnz zCC}LPR+Ap>0PtpCaXC@bfeW8xewH(@oo#3|PUfZCQxdTB?coh*HYdQySynfIYAVE= zRf8X<1hiTsVr;u*0MiZk$Z9?`9zeSFHeovy05rw=hG+sFs6oh$22jXQ(RDDapzbra z=PZ({su#R>$!m-UI?`!HApC`zNJ?7opZ2H%{wEiWyA=@{e-o;9Pwh-!Mw(I<*$RsK z>zrRIpSQ}lKmTryE*4QKM$VT;KRzRU(Xj5)q$5-Xa#}rtC#B=Ug?C)sn0#f(d7v`( zT1-0ujSbA}AMLq6KV1#?S)&QltKFbz@n&<$~rPszcie^1r$28IFq6>4|Ro|uIR*s@s>@Hl^opb#lLR(1fuZg{I zJ*4u8&9(X^YTjbp0|XSUiEqW@H>N?C2VEVHfB054$Un}Y1858#*Ue{!^*9U>;Q#{s z_sSqDdZC}Yf1XzV)|v8zZUCO3yrb-h-sQj1`^19)wTQ}E%KkpWi*}tI^4Sm=3gsM# zfL7ji%+gG&)(1O4hKvxR-g>VW4*vyz+}TY8y2m2(HvsvSv&`+u*_&*+h56X5a!B7% zkN5TIa^hIGQDQ(yu3~pQ<3jl7dO3yGr-%ACC(0Y0SvZM)XV|!aSdP4en<#Umib%EG z474fcR)+f!g>M^h-&i}#U$%AZB2iV8`9lfSuIS3~Q?D!`^tb2>f7Go0-k%D+3Fcb8 zOt`UK#HV@^1R|&gpIBgmn0A>l3hqOKqOpj=0agn{_)DjI=qBY5f&Qbb$;2BXY2T53 zhJ6GGviEuU<5Q8dOnl!s4|LA-pxnZ{jmmOQN8(Gqrjk;(@yYxh#=*jRnOkq=-%9i2 zW3!=J^IA%^19>y!-w`^N@0OPX48g{f;*q9`#(f4pEsLudrVD8@_x%$B1uG<=-RN{0 zHjr8OyYXyT(f$a~X|~StGXeXKNea$Nu_!LaIx$sHwLzkq*}64-KT zK-(|VsE!VBZ}1AG2Rh4EU#_DEUe@;pi7|1-uHUIWpwkHH#}kOK&5pxW>t{HLiOcyP z)IuX=Ij;daqrv<_D^bys;hFceOQ@E#kT8-gm~qoSL0A_3t=yM+>1oadcPYg#LKhET zw-->_BWx*_^r_QP5YHhhH`tA40$dnDjMFi2+N~=6Evvh*sn!6JlpQ_@q)XTh?OQ_F zqV)J7aR-h>V0PbV3=dR16r089&L=1;e6V+m1Urk#ilfy%zD8cga} zXHh(P(W|tXkTP=~5i(@Y^ewNM+72olz{`Rfp|dbJW%dJ=hBl4-FQ$wo?xt>#Q-Uy_ z*cYf1^P(?ZdTY0oiaX1|N_g#QQ;_^g&1e~xR#=(t`4?7>N=xIU{sC?VsmCJyY)5_K zhlyk?lqq|mpy&xOvidc^y+ln!n9jmLe~q33Td0IFO@I?GqR0Q@GCi!)Yw%Lyk5kRU zw*BH~Z7L=-Scv578-~lGZhpW!eKFw7Ik+C3QS9Qr?xD0uF(n3l1^!E|WOHV9 zj~D`@CW>8lPWtiE2h$k+#=F)u#y_CQxwf=XunX#%{RSb>9%HV8|0#t+Y^=bG&Ux29A^0H4fH6|5ED`^Fr;^GQQN_a_NShy@S=w9gbkZ8vA z*URty)}1YXNX!K(X+eBK`&*5K0RW><(?05v&^U0~%DO0uh;NirkbI5p&#vb|ca5OfEpAi_H^(T{7br zboWMWtgtJBEEtOjBs+AGG>Zo}p)fbD+?UGp8bDJTSecEwaZUjtBgO5Kt4`XvPR{;M zTit6EyAX#&wMbUs19e7I`=EKjbTJM=IbpFR;yudM@x_&{)F4 zpUlyeB60k$>23$tN(~#C)9dQVy#^#oM1Kt+EJ>ZgVi z(wViA6_Q{g$zww)SNm(pu}4=R7BVZT6f!&B`Dzl_xmw1O z8A3eWQ-j-GHs#|@CnZVuo~@qPLzOXa?SMRST%bg^Xm;uev#2=m>3rTm^)f1=K$-uF z5IZ2vKxN1@HRexDXvnCXj;d>!z$zFXJErC{>na!WNGBM{Su{E<=9eX;uWy~qls`I4 zMbwfMDX-8Bt^$o4y7vm~cG*pOpI?zcmY8X=!&~OuQ#r;QfJGg0D)Oa3DqMAsPmz(T z=m1{)ra#m-4{#B>^RR={0{me8hr8PVJ~fsv;QWloZbyK5*9wh$<{pS217z_12hNnF zqxTbU7D@R}&2c49aI{buQ5oCVPbiIl37$y3r2kgND?u6y(ana%*M^GSHm{bUm31=6 zUr~qYbZmk;pM()P)AbH@NIJ#6&;Cq0gxjAo83yw`G76|tEk7I-^iEGxX2cYhah`m% z%Xn*Wkz#6=suJ?Es=l0T4PHe+rfGNVkG2Xu<1|dJ8Bh6U-@2)HJ}FA!OM=-fr@R%4 zG(lw1V(w)Zy$nys)GKVD!&XQ^G|+bm_noAKs_EV>F%OhSkpf`?XLcSj=5|xdY-*BCu@ZnK*v$YzJ9rBLv3d1=3cE z^2iI6emh?~iOPH#tR2h5G5@W2F#hwKkv-je>bvs3{>;_ZY|%f*RbO8kcdPqp^mAjn zzEGl0jXUcE7?4sC7?oPr^}lsQDKH z2_Ll1@Uk3(`^hf4DK`OFwXobvmWLKpaWf%gmyl)mUK+ufE3KUhz*Af2PWr`rXNqg` zsxBzaF9aBjIyv^5g3-@cWGBGiCS^J0r&WRMf$9n(NEqEe+}N*abHR9$MZPrnHvsi0JjPJK`z&5;_VxKZ) zUy#;>br+JNh8ULi!mA!yqymB!n5}sxsr>!8-tEQ#Y!v9BypP(6RL^+{*}G{79VsC> z`M0eWTr_o{%U?#7VdRGj`DuG{yALJ~#*==5oe#7D<;stWEsIRYzN&8uW5NHu3*iA3 z3w9{1JWzZGH}$JT!5Ic5uDJSMJj<;Z_=ewm&@6a<`oHMHzmp~Cta`?7EDSmtUl7Jk z;k>>YAf~Cv)=~bLJ`}ee9#^rz8|ySDwub;TA!ZKn{%h-E?fZ+HF+n2TJ+`_(6f{+E3mgSZ<^!-r7cFa?fW51XJRw{co4 zEq$~~n|oc&^~T}orhT0I1X-g7JttWBQk|pJ+;1(d7WPe)ar2Ebxhd3pO~AV zavd)MVon>X`t@ntOKE*&$7 z)-e-5>GrCqoaT7xl=}(uY|LV!eONij`U0fvA)4it{4)pTVBmRWoT7m#qu#BSsj-pX zAvwCY?j0zuJ$p3TwgMBi<}{7}70A#YU13nZkf;oZipXu$Kf=+N-5y(edSWso#?XT| zB)U^*J=#3&&P^Wg_^pO_$_>VR&pMN4ZpldLmGKNfuawnMhZh4tpE|XMBvo` z7$nZfrOWU&!K2IE`1!7b#4=*P*M>%S;-N9+pa4c-w=SNu?VI0NIK1SMUPZx+GSes| z6>3)$U!SSYXR%EyOTL!YobnN}790!w-qgwVadW_`(q-bn-3(jYBw!<9IvP2~z>YK8Ez06-R0cv}e@iUYtiQUSmd*=CX>fg8Jo5$W$+mNBOk zjuC2mts4`6h9wA1;|?sAf6(jwnb!JpM*(>K(>c-=-*#R1%b52rMPf<$T(2+( zhW?45V4AZPX%>TP+klA}Iw@dZ=Fe#6qfn`M)~UJAIql{#n=JFa`mS1*1NcR!R7w+( z>LnL8UCOrr?gcBT0_Z zXhe2=HU(rZc4MbqF0cN>l1+sOwV4GVPU&+WZSF%u5E35hcf>5fS&`+w0H3W%p?Q}6 z3_FKM%8Fee1NMJ^v+tkhZ?$-dD_h&PT#Br|$wdF7Q;$Q5S1(d|Y(LY5^6&nO(mix% zWdn84(J6n_Tz$MK`qM_qiQZM)-GcWB-Leq z;28yM5M06gDDr>dnM5CAm=obB5Z94hP=_=jBC)g#Mr;9LIw>qga0s#~t5SH8z$r5E zOl@la@u!7QhgGeouH2IYLRh0K;DX$&hsJrG>jJFl5L<3&<5?w-G<@gm#ts#$j3#LfYjRCn9Q zI00G9!IKa)SmqmX27CSa#aIXEFir>iD4ve5xPVNW){|bp<}Fjok{o{h@x!<59?2tv(s!K~*eW5vT8hD^fEh~Y&X@glr z&%8q&LD3i7s{f1LCcs*;akwk{GFf-ExKmL|$;j$T0FL3LDA@7+=e273dKzOq&326` zeYpCyRm0Q>E^lcw0-(mk&;Q~CJo?#@C*=zo@dWqBKYsWx@E^^N|LqDE*;Gdiwh7Pv@9ONHDWn$O+ zGgL2Pdkp-o2%_un4dhr?p{kqtqx zLt21K)Eh)6%R4 z#_O!)=^FWK-(6Y%h?XSNbLTLd6AzV*-^3Efdfgo#biVSvV}jh{s$Fp;X#=V1{#R2= zLU~r|7fdNpa4|I|DwS;PlpdHLAexXRA?KyP*=M@kP(?Ydv7#9n(DTouxuG?nO)4~a zENmF20VY9e9<0uYNO>F2#h(#)pe_H6MrMAZFxGcE&l-N1k|uGDx9j=Y_YQS6l(Wca zFz){5J!Fjv`|>7Wp>18)Y`m-}^xVg(=M+ATncVHkdqA_#v{FUo#*$V;*Dq$Q?AJS5 zmz&d0cNvt`o#^d&0D!K#NsYQjr9=`wEg`IDC> zrQqCW4GXDtJo0>DkOY5%etgnnx26b)s?=0Mb?JGD4@tu>Q2c=(an)|#e1#~IaVJdV>0Gpfih}AkY&&iPOg3Bp0#b5CsBAp^ zJ*hi3!WL&ra+ZhePQ0O0grPyfgUT76SoJOXBI@C9fvSL&fTsZk`_zue;2q1Kkd@0d+^VtGPNRApaJR|^M)x-?*z@u$Nv6=UjQDMWq7e+ zBQ}|9eJ&}Vihm3L1H>Zo?~$Oj7AAy&ABb$dLtX%D>S5Kd^4?v23u<}>X@4q^|!mDQ7X3lM39L^G{Y_N!3IE<-a%eTt)$`q8S6gGA6=* z>r$B9oOuH<{*9pg;dKoZW`IFwS##_bBg z=pJDVIxh`+oD-s=O0_F}Gt%QPS|skQhq5j;s*Tyv6O9(&f#>JS zr%mF|7~(xe2RRZxx^x%P>qvDH2y8JGzl{9F3*m(atOtyzsxiq_Ya~Bk<^t#ZKO|V_ zk&rIxU&mQ%ZYYlpZEpFK?3)iyH>%nxj7x#1@If=l9wPsAD{ z+HieMU+)&%Cf(MOqN57{K7}i54i9dcn~4xeKuYaoG2nu1>@jM|%cq@ek!i>b!S9XA zHeyqC1mTRm7AX8)K4imlyo%6;;u`Pt9 zxju>Q*x$%Wp!>fgtoYxnPictLw`6AOH@E8R?erw){F63}@v2egpySm2C|>u_oX7Y+ z4Ts?khw5c93Wm0z)_h1u*n7jwUfH8ffjGL%UMwBc1FnQ830FkxuAXml9a&{SO>q0t zF$ybmoOTwLh^4y)5;K9Oct?nmQVKr4&o>*;xaQaA60zGO8c4yvXbVWo?xcP9T_Ppb z#iobYt2cnO-K;$TAjPE~!qgg8Uga9`URYZ`%L^FVet=MTv~Sv;glg*>;7Evm4i}Pi z>QJpS!p%Y~m2l6x^n_ zOU(IU$g6w4+bD2jMa5MS;3O;JXGD7UZXxUmZCvu#d*NQ8v&8u#fCyp@_$(MmRSN_^ z^^>kH!{Z_@xhN1u5d@I{*^{bF`#d)5rHWWZ$7O$RjUZb4O3P2H>{Qma&FitaoS9R)?96XeDUK*PLI>96Wg2xuhlw!^AM0!g%R00$h#X>v%c_ID`#)8urS zDF(lXLDj4!CJVB^TG_>7UD1Ob9+Y}Lx&<|zsI7JIbfg$vB#7P1krhj*V?|zG_a&hG zP1%$r4_{9s11`&)$w=G~vI;=oV3vfZkYdEmnNFzMS5on#UO7TOuq0MMXplE-(^`Hte3_3Kz%1i|KZuVwwZi7P~<+)}SI_ zDg0%`#-54wG5Cn2b^rZXNMGE2cxkl8<%xFOaK^VHPt~;gq0l2+IF8X8N1tDsM=@FP zL$64cMG$87t3fLiy|hZtpqs8^;DZ@%9_3Deoga|Izbn8peqo3kueFnAzHObB@iA@b zYs@z_zHah|IS!1@Go(_2?UW-IavgDnt1{D9KY}vUZ-a zy+w)|^Hz9Ai184{eqWLuDn9x*2@R`6ff)$H1UPWLWwe73IgGj2tAD|En;hO-s8XqK zq92r7hE8>X<8hLj&mmUC2%d*8Tc^<0nOp%rYo;vRP$7B%j5mJwnah{&%}jv!uW|O# zbyENKZKHL((#!y0(BZ-kY)5`2=Fl2FYEB|;N{v5M~e|8T3jw<@_yL!(L0l+~qb- ztw`td+tzaLI`J~zS_W3u&TT^%w&-b22EwJr&B`P~eVy{3MKLN>B)zB`B{GbR0~K8% zW(f~esEll0!F93oSSmvl1m{@1EYskwj5a(q52OGSTB7$V1J z-BYdK74Jzj0|pnn@yP$mMh0Pc!9kPAuF&6#=(kR5NEjkltT@#jDLd9$gg=?JQo!h) z@y|Lb+n|43Eq;zLlEbr_*kZso$0NPHo+;)5c|)Qy9u62Wvs44*`j>neH|UhdU3f zQF>q()h@kAi_n!L?6x#ji77UCcQP;k_QN^Urp>({sOB81*yye0Ug#JyR&)=zsk||N zmP12)YdO+&Oh>ijmAiLbSfvQQnR#E&X$vXLD$N@A7pE3Q;`o^8 z(Uisq?cp&-RQGU=lb-PdZr^Q5EC9*Q*zby92LX_~8Y)1s(ZDKkoVgWfPDQ-l$CRJN z1NeR}#>OonTRX9tfX1?r1e^wqDWhFIn5!(;$os?|Fj@rPAiZV0 ztBq#~UvGYN^t7-aTG?0Ol;2c>!Kg;VOQ9U$rlW$$+O@+tI$B>nD^pUmf3TzvhzzN~ zY5FA;YoVMpdzM_GSG+T?Q12nTjRj%o)_%mZ?O;e;uL$TX+1I5LmWc*^BK#vFEdOZU zj}HiHf12$YJmWHe=XZP34sW-)()=)VpH12V&$AO~H3m1HRfxz9g#d(hE?-rkZz3m; zXh81e#+m-Jwg;)fKbl`D97le4c63mi*lC|YK*V^32_Wmz0B^qCxB=j+DHbTqf=PI> zqm~9oCkzr8pCJgB!ROI-q{W;2&Z>U-u6FfMd+xk^sKa?Z+EXg}nW5CUX@trZyFjQV ztmvjFjF5!*1M7l77dM)&Uj?a*uA3c|5ZVl`{B26kg@j#MFB`uKlc`3U8}CJk$|tQ< z=b!sU(I+3{Pk;Ja6Xj)*<$VO@!F>qUz${NuxIq8BPpLyd%Kf^@e9aq9zG`Ywy z*GwAX93ZiFLD@gi2d5GX06kZP;J#d$=vw5);d+j!3r=bP+CZ7zYuFz z2Gh-=I{lJfa03Q1^Y~Bex;JVb-e>`ytPHg%Wbf2jPfKK#JBT58(&AW4c=-kF{D8>EC$c4NVrZ zY?-M;0Fq7WTC*w4MdUAyla8ZK|7&nk*dUN^!2<HNtYAdVkShYxR&p(rTKCM#ox2rdPS4zhS&5g6AKN-|UNV#;olVa2 ztW_4)83v5qA2D>bp@05Z?}+$_R8$kp)akAW_;};>ha{O1k)Up5E69D_NW#8g2~ftn z{3;@j?qG&L?0=ScfMC>|zez!X$?MZISG7;vA3s{A`4SawIF|KFWch}rxe`d!roYvm z3Q{t^kf*NSLBwHY_X*$nJ&3 zo;%x}+#zt#osB&vc0Ob6*L9uu{RzPWtvXEcX%ZklehDqHEloT_#a- z%HXg-f#2IugH(|tOt?2Y4kR7f=N;Jsf~T(9svj<;A<-7)VaZb5F3w#q>(CmID;kus zCZY-0IgBsUy==r~J7xY0Fa!*K^y2<@n2V(Q?zbO$*di2+##c{JBx@LCebE7Da1H|i zY(da0$&vt>aTyI+R2@ZA_%9qknv%G&5-5J+X3H7{os2P-@~;Z8257#m0c-Qf5<;i6 z%zd#tQ!|rOjWUAgS!lD%dF7?m5x~)#VkFT{*l68t<|A=O7YLxo5yJO}K=sr^Y8av31=JW3EN~p4y zE=buI zuq%Xka-x!rC*!#)GzKtH;@lSA;6C9S@-=K`#$ql5WJ z8@YME{9QRGIPKevc3WDbLNK5O-catgT48ZDV=ipiG8{Puq?lqD2mp47Tqq~7g|4e- zOM)G$SsQCpZ{N)a+;X^>N1o&}+ zXYl*c=?3HSo0$!$$PL&z_K+rVtDu%h!TBrdD|71i5jJ0g%9fHsaN)50r>gSisAX5D z@muS*KO-u`W#uZkOsVqwMD>y`(JxdWEAc!J^Iqw=gTmyeK8WgrpDX1Xm2RQZ77Qe- z>#ylv*h4?;)Rex0f@!{n{x=l|;EIvS-`i#00EN@@GzMDUsvGY*`>_AiTB*!eW}qbx zz0)AW`RnM>Pby&#d5w946i?<&0rCj?3{ZxZ+=+{wffYS-!dhUnKzP~bQ<(kPpYIR! zp>NE(zkmE}r~tG^<@l(8P8CHott!^_SM^eITJ}p9ZTZmVsgi?sz019c!4zKkjw`OY^24j}kUwX2U?VJ!1u=EAO6v*;2a zYAO4UFs-WvTbr$aCe6e*{@D0{sZ$v(f=2SBrMdF75gp-H95wv(wy+)xtB3XES%BzxUL zfKVmEG>2%unte{?0Z%{q>Y0Q$5P!-wP` z=XxIs=lwrjH6)%?!1|2AQ+RQqg>*Bj_dz%@uA|<$Tyu2=YnX1C4H7G>z{kex&lre| z8R!@H9LTf!>K+blgd}l0oE}U#Gyg;qL;T3`-vikeL%;n=l;8l-m{YURfgQ-FUq7+N z#BfjT0W&8+Jrq-Ea>QtJN|RTn7IEINXTd_DFeE9e&daK0ZM%9P)Ls)I;{C{{>xD>O z4v5Bl^<#1t?BW`~3wZuo)#wRp4(yzy@5DW>Id`X3NfFfk*hsS~aS?$5brR5Ljc_k$ z%V`nHgq@l=0Mam_leKTh;=pTPEgYN2)BHzMj0!y+$!7dLDO6maJznY#9@>V6z zi%SKvP||1+mbi|i{zF?SIV>Jg`9H63m`DA`);QLQICA`mMV=3^m8@-hz%=(uOv<*O zF`jm&*6c=90-li;LB^rtANdwRwD@o48JJoL+6j+)LB7T&zaLsZp98{(g$|OgFYz5= z)lcK{TjSqURw&=ai?y?1Up+4}I$!>IYcII68m}FnzYZ|xb-A8-nc#jPs2_Lv|6G8H zz3wVZ5}Z!sroC5}QF#*- zS_h^4y{3kB>KN_rFT{T%Rtf<;GostWr!k>m;YBSLsBTeI_Z`j%6~phWa`j2wDDK)F zd{I)3B!cH}*CqR-kp$09vyX5h9ezS+_Bxy9EYS1zOsB~V_4R0t{j(rKGLM*2FlsM% zmb+TyMpyzHv?6WJxGT{a7CMVUA@?*o%^$F1UBP_7bFZ$0JBy?Q{V+@7_4;s1^3Qmo znDSoK6IPhUavC>hR(4nL@7pEWbdgT~FYNUG>+j1v#_WbW=?MFMp@B@6(V$(~>Bz32 zpVm#muTV}FsMS*|ifr^re0ScLag`+WMRbAP%U13|hcUTmbMD(E-gtBtz98~Tc9y9? z_%xUz^J64-D1liSd`d}R7(sr@K?`$hvm14&;|*iZIO|5VMuxv({boW`W+D({D}?EJx85kYF{IzL zhnG+A+mS5xZ|2f60t+~O$crT97e)TgzU4?IbOQkc2p2!`3F+^hnAZ^Dq?r?!JeIV; z=e`QpTt;*@TKONlea!?^>7L44Lr%8uo2GX}L+}ifSG=}tUq`;9c^+?4z@vo5e?mxu zg=8#&C+z1-%Yxq0$$>Axid0TIkbm*<;0du5G0Top1d*MTYl6}ct~Di`K4r+nn{)#P z``RA6b<=f0Ha4j0*GA$1Lqysg*W1a!m&?M}=en6(4o!k%dI*?etkZ&E* z1u*N5uolAO@HE((6}5uO6=GvpR>h`bx^w=m z_rw9+jx-Xo^z&t{EKdr$5%RqbS~lXlH{zymqf6lMy&<|AIQ%(}aJpU6c}d~_3QR;x z2Bp=;j{g;7BZo;bef6$qtfhWnx&=qtr=Tg31;rccKoBWP!ME+5OvKwrb!#TrxwXOs z?%SK0!6=~_HTO5&6b#xqEpg&dc|)$~|3lMN|3&q7LArB6x?w5llFp?TX^@f*Nu^7= zyIXQuq`RcMrMo+%LAreR`@{Pm-21uDGiT1soO{k_ex%y|j{oy&3GgX> zciiV~!*dNadgBno5*kIB(*rr9#sanlFi(5D|EPmqKb~Wxdt1il?bleIB{*l??5<1v zdp0&X{u&(4Z8@5r^b}4gpUQjO_ohX|l%j?B?3j$Yr&u6feJP4bfed_FDIAxN#Rz*r z<&6LO%+Kd1pzo;rK%yHo-oN&xTaurZVFz$Ohr1i8(t1jM(vb--`$1BL8!tKBkO?R} z0FXZo22dtRX+Yj%m2giQIm`e`A3Z(lxyRG6h_%RaE;88bGg&LH>Z`L~t&wjCds}n7 zEes1bUbFoy%;av*6N3~Y`?z9Q(&nRCJNLxYd&&MfooJ-BE#=0E8Hhj=a4sCv@opF8 z2tL3>!I~80&iBmI#amhXX};M|X2Vgq@wLQNLvqwWK>GN+t->j>5GvRenLG@{bPYO; zR8fP-FvPXQf9Xo)!`%hDGBI2YvbA0%6QKCvJySa3OB#$F^uopz+KlX6p`b(lgY8Ih zBxzm#l%snVeO2(y!(jWw&K07YEIWw2VJlREnitYnS6@5G|LrSV;V7j-*$38XC;Mao zrAuk`x_K^b1QA-2MOs}q(0r|EUS_msTR!Ib?di}TOk3)#bIvR;L5CkjWTt4VQYevX zb%3-rRz2<-^V`~UL!9KJK`t99t~1{fADZS1|kR`J>^ct;&FHj{EHfL+OT zITHcvTknLjpAj@VzRPxTERFHCcZ|Jc3jPF3fn8%srp}fPYK)>V*-=&bJUmksnf+7SG)~r8 z|HaeP2Nl=~XYU9U#$pQi^+A}H7T<-MdHN8kJCE+5gJwFNnoDlR2`KMwMAjgNbTO-3miuGYUqdN3zmmA2NUSt9EeymE}F)$EmH^(m`TQ16BPS@|7$kafCCIc!!Dg`X}dbf$D6Q(FBKO8vm%c1y{~BnC1=<+D|*(MKVl4$$!wO zAaxVEgu8chobk8BF~1E#Y@kxsPp>e@J2&qMP+dQqdZZ5xk=#W+0Y<#$gNWbaZp_(5 zr@eAyfuhsJSOY2FE{Ak4k7un~H4Ic@jju34ep(w;HD49r)gzP|zOHYb$0Nhv^ps6w9xAbLcakd-FqQ>i>(`*i=3y>V=vVW9mIxee{T!(x4FjO+$Qv_^DiH1| z%D_70AEh(~S5TVO}N@wk?7I_yk-vO=yvheDm5p-Mr*He$0K#3j;EZm z050d$R$ND=?#g9F146GTPve;7OdoXXa$qcHrbsJ8%Jdr0`COEG<;bs7VOxhxVTERg z^&fgA=T+Y?Ou%Z-LTx6&jTf_u@&LL*oy8IXf zNka*MCYIAJgyid*As^!*m?WFDe)3~2=}aa|^85!w00^@ohD+XMa*fItVGW2s)xoAH z2MYM688Ly0-*u#x0}7HStWnA>VaTM?f&2v(`*H{~2=@?l%%&?5B`sCUZ{mJwdk$Rb z6vls-&lRzfnx}de7#e8PRJh77^)V3;t{5qfQwXwtNuW@Cul;m-Vwa#9I!gIr1Gh-y zll)f&7{Q=Hb|cb(*o~>TAX3lehb~RsY`%yL`$=UG{27`9Jr%Kg@}5<0NxfT}=E;tZ z!2h25!7fY-F}w|i48%Yat-&|5&3BMCk?b7q2x<+nkm)9)I%a;6k+j z(xs#f|ATfq^8Iw;5knHdSC8{|^UX3v@#n}m8l;pXM2W{jr#!*m*(y*Wma8Uo>N^K? zP&Z%ceg+i+X-zU9XJ)$vkTW4WMsceZOTNHSV{{zmO&!5Qf{AV|V)DA(|snf&f!vKEXbe=Eu0;c~cdJT%*3 zeE#R;XZsz+o3xYaYkdli1VNo17BMW^uIh@I$!L0>{DO+jINv&VVImSOTG~AM)u@4v z!|o|{a`W~bw+mT|g#?U}IrT_QJxE=I^aE;AP|TGzAj#WE!z}k^dur;$f;mxe1dTo3 z=;GYM{V$e4Z+@u}SKX7)xp;rY#K<8$C^R>p`}_U};E51G+m4G~O+)!JY|vSBfpQz|#fTm!q%6hs)gh>s5> z@E=K1>af4LG+|8(ywy{TjGL!lH_5t~$PT~|kqX4-+%#(6*$-ZSdvNqnn!*Hs{UvZU zNQkN44exvQ08UFt$0(Y?f*$N zb#`gxx`oMMo!nJ!nhS=_2P{^s6-D5>GPVwQ^4@ z;*}XAgX2(18#gURzEMSC-e&8PiH;yXQw|?O(XD~6o@V>_uhl>ALd5^%)u%Pt-{0=w z;#cIui}9oS=F8i2r9rdbKSoxGzZ2o%M{JkQD`KrK{+@5&?jhH+ow6%$>Bd%_;>kuY z*B@*+AC2EyQ#X817CLnN;)f?EUlw1#cbVP`D)e_$KN|7O;>hmJ8bRpdWTC#fY4N_V zuBI3ggWtLaPfW&VJf5WAocpi;J5X9H=-BfY`WL6el6z!Tt)zW&tBZ;A zH76mcafx`VBpj$PU^BLTi%CUfPwewBF_~k)y6#PJmvOP}bRIX<;zITJ&{!~d2ieo7 z=jK}IZEBZ7pwFFnLh(YNqkVU6rZ4G1_6~B72cw!F zBJ9@m@w~)oJ6^&ZRNlWOe8QUcFT_9J5PdHQH!w~3$-l33Rb-?WY2>Ech@z0nP$-P; zhm>2>X+R-~D+b$1EG;g2%Ql-2GLB?mOYNDmiz|`ora&h&tDyc!_mvvUP2JPFE zhI)2O)$aKQMrTZ$?Z@wkMM{ZG!m8-_*H6m2EEpt2cfm`OU5`?fV2ni?!cL*4tg-nXsm-r-K#x`O38p#y|@AHbQr7(cx5z-H4|YP=>(Z!TXdvM zG=P^TR6+)Ed6}~@v9bqP#z1Kj{|?YPDMH;?kZ>Mb=N4mk>+sgNbauaFQu*rN*&-*< z(MLiYdoVZ;)XAg8wO3w+asCOX$7jZcl3hb#h2GJClj?xJUW~S?<=<_kBmn3lX$!L_ z9GIL{Z}`VdMWRP3UD8e8_)SdS*Hz*nGfzu&S3n;_jeDrIa=9Z`GJ1 zR;h_s(5v9v8EZCAH`)^*?dIWWhdzmvA3(IaCe@ED!em^y}4B~=aNmL{`F@de@3^>wh zg63mt@S!3JkdSq_sS+I3+#@c+UGNQUQ!tl}S0RDkofGgWtL942$&R?gg_95N`A_>E zrNuTYt+fWURZ=`omyXZxBf2`QU1e&bj14Jv*Ze07kFOZHQK|ZSMb?-<5~GjXv;#@i z70mW0W)BA(my&WMNX&myEdNx?IBI?(%j`N*jKDU}g{je#?k{oG*e0RVls=s9t=8oV z8Uef3b0o^!Yn>(7cAVKt_c|F(XUP<+P}bwgQoIY*=8xt--~D1 zGmQt{qOu`Iv*`=g%)dGr|EUHcI99sNl3@u}gWUI9VHD?m?XKkcD%Ek{0-ywf7oC8@ zju_2)@Jia4vXUZvdn9yJ{CQiv<@|gC?IO8{jldSoq8T z<-3CPDpd30D0L*DRaT#c&)wJfZe&2c+p3N!f1LhcAy02sxv1lPF{tXHMK`rGB|)x+ zr!u3KWOh}7Ml6#bi2uEeo+%3Bl^i8^q5f#|NtrTwv^C>d)YHRgDzysl`PF;4!wB!d zREa}4s#f>7E=NJ{SD283D`XFcLAdl32MaBV3deb6<6gt{3$_pZcBEes_dT*GK7Kyv z4@j5O4K=AIW=w24+{8yd_sE3!TmRtoc^>7~E=pm&frP{c1cI^gnf`)BkmMYjagE4Y1l0%Qv?J8S&K?xlCI&u3*RXs^+$!6&$+hbWD zq(bmKuIJ4A9;Z}CkDjJ%E;6P2QTrZuoKzyrJMPDl-+G3od&Z@om_v!LcBss zr*m4>b5wm8@t4KzZ5&HI3Ur{kdmdW$hs`^EG%F)>OC}C_b$fUbB<5y&ucq52hfN>czS^O21VAbBMe7)iv@0m7j2@UKzya7{t zG>?gNSs#Vx^^la#eC+;Iu5!O8>N1b_h^~p2?#B(4Z7kTlaVzS!=1x1_KE7U3r>@AG zYDt23w&|)hUg%7WR>D0kYFPa9qc-f2-4pgv7w0ibg)2GFzU5r9l*t0gqAwBDYouAr zh1w(3^9Ia(HFTWPc;YVbXyrRdUtBw5NRWpW!RgX&EYLmzB?tI$^jdi1uJ0!;^d&cM z;-b@}G=lD4bw*PwB|krIgI!|)vdpmN9hWP4nfRJGdmTm2r+HVagHrWiiR^ zcE(0fiOlFlbbS+|OU**aplY2Ff)cXR32?|20M4H<>monV%pc6x_{84%^lSBj2HvGq zH&mraY9A-dK1|@JPw5WZyt(ZxynB3D3glN-dxJbU^g4DfL5CXJX)!ohbe12L`+d&s zThC!Rwg#WxiaS5c)xjGyq#RwxMw_@+{OD;^PAi9aQg&*@S%>bN*_PN9pXveJ@2AXq$jz4h0Rt_HX?d zZt4x#!x_5WjmSO~_Pv%5Xxp4V{Myl0ZknNDqwDU+$~q^LB2s*>$UGfR%b)ijc*^A- z?a~2(!nO&=CLKu5WvG_f22y*Mj<1R$*9t=QbCKjzg^ziw zRU2&=xaTd~q*+4t#K|%b&dL`Yv<(x=cuV8@ppyV*p4zkHpSz+1c$gX?B|Q8D+JVf! z)A4cx*72pnXNpR4=MtKzcM~nLpuGULOvX|^Q{#(H6#9c-RsR^H(by}x)7qy;a6|$! zc~XvQqICO)yB~>lWxD}vUIODVl{IH(39%}>qXlhVLPp-#uUCgJ>Q!I*6g9^_UN3+! zBO&D|g`>y<7sXHYj|N#NrXDA$+R**fKfy-iSTPUNWj^)rwQa5Mjx;l(51-2nbP@sk z(Y1tTzP|4pXhLIB5^mfdN!v2EayB{_Od&zkC0R7{-v6!~D&v_pvibh}BKK=Vfp)78 z$MZxN&M?>a_G06A(aNmQ`JtlGqT}r$(U0<<6CTiq{OOjKvG<>j9gQ+@{c?X%pkk_P zK?f8jGAZ2jcI=L`Qp4oWH8fc!7SobR&==4Nwi9dHy!GUc7~V_H4g3~t9M}H*!#`ie zoa8&zLPmzCa^_Tp;y3trfT2MFyE?-cWMK@L@>U4)gqUMTMZq1OXYZzjin5e&lZBb; zlR6!anG;-nrRYIp$>roP!+u$UXMr%xe#SsIYU!|Xz74@9oab4+0;VWM_6Evi0Rr|v zEg{Y$vY>|l5L(4MY!fbp4``%D(2aQ(c)MLR*YqqRB|1=-)Y^v4&x`#UzdJ=H;QXDP zfHXW}BX>jNfjByXXzEEpc-d#^X-MUeE1P???UeU|pz-yEgZ;=}c>9bY%HI(GF4Fs*?;kJ@d z2!3xMoe<($>bb4$2`L;D?L9UZ{ym6=@vh=$Tr8CA?a^^kF17rtqJ7B@&LxXchNW0mtgB4M8XPJ1eMS|4-5 zG#sJ9+aff~a!&dWu2GPpU5dAig}`T9;JvqLB6<)*9~a3WOxeU5;A5*c_Tj|mKS=cY zrNW(?R`KRxed#%@Pt4Jhp>&|QOUEtVXZ)P0Nx0ghK?002DLvN`BOJXdO;4jqk;*;N zM356hETySP&jwYRP9@4dO5&FHuC=LfTXL0%@2?f|S2LARdU5BjRfBZv>rkPZ8ZzY?vffIKK#WJSrC7Y1PpC0U>`)s$0ff4X=CCynlya z&>I-16d^5~ZOVQeicnw{oo++LyA8pcDr>BO;i(8-k+y9*Z~9n=;QtOK{?;X|6~D2!=l#|Am=+QhEo>@ zf3DV^9d<}FH6^BVf|Cbow8B`*sEJXRGD*k-<*zYG7BGwv^a$I$wCixtdy{fGVgd~! zP47O4!x9?CN6#X)x*;n&zPMubZOiyZ7x0E97k_xf{W|rv)Bb{|GGo zwJ`0~_Y-W@4$BOBn-*}sJKrrjCD0LEW2Yo+_j&&( zDe599lyWU(Gd3O92`T;mzW~BMv{c^^RMp;re)F=3;&XL)<JiYm+K7YC1FCpFOEBB6!*& z9NBgw)PMqc(+o4EX8g?Qtwk%JnR3)G4g;x&xXJ9N{3?-Q#e|t6XgOKJwUGdU>`th* zZ}ZfeJeK$FPGdUId1g0@H^Q!}xbQceYAftDr?&7}nWw#G-XXZeZb-*^Re?66M=}NQ z_HHN+4Bx)_`$57ZymTgSjf0C)=*q&ykD@c^0O5&iJ(_C)m9t42uH@ z;eg1?dOL^u41P-LlHNziIP}1$XooMFS%fe@CRF)?3>ElfaSs%)BHCb`UMap+Pt>BueJP={olUJQU% z;acF5?61PP?yS_*q(&G0cj(sxw{X}W;yBvmDgMO+pbrlJIx1TEW zsAe~66W}=c!aO~o8_Q*`NX0U(UI<2(N+OFqh23xan8Dj$ocFjOVm{dSO)uw$$BY(s z^5-t8v}>Lmy0Jndk8ALCI(Db{>gkBb=jV7QQ)$9HEt?D2$%vctIhZwDr(NMDP#Zm7 zg2eAUxw>dT{Yc9|`t2jMiW;gVdiQHM4MjrOpS8e+a2-ATw}F90HS>y@4|e&Mlyxit zx}$@iu2Y2an(CTM%@i8tCQPM!1^Oqe!5KZG$Eq<1V{|MuWndw25Mk8lUkjWlb;mk= zcfDhO^H?vQY&90{OA!f$?KzkzbQ51+6~Y3Ou{3MM4#XV|Yo#Ews9~l zwpj9FgIVHKSHpk>!|kGqb1BsVg6;AYZ%(Wy0BAp|hS0pj<%hOpD2SRIv?#_&K1+bD z6i50NK0S5o(+&+1kE5i4Z1X0g81PHl-Yaf*7o04oGQ! zAPbm?U;>}Gz^*~|cOo!#gilHbhXPfoAQyJHY3~Ta*<1MDfnCeEaTQohlo+o^DFul= zA=IAe3ra9w!(!#-ffgHg-QWiQ<8*QO?W{~F$5DSkecWD;R(26qhs%3G?Zf&K-&izV zFcCa=5>n|~E)Nv^IZYeAbRn71H>+W@V8X8%t59)MF6vhCh*f;*{aXZ{Y+zHFJrrad z(Gm}*W_m7zhae!GI14i?`!cb!U*x1uiI*xTcSM*Z#0ABtlyp7(%9;`S`iF&JqzzP@ z3;EL8Ew}ncmjIwF4SA^F0D4^@sTU(c-8%<<7Us^$U-$_9GNM6JK17v$siu1uw^oGXD`i5p|Em+`Zo``OAnKi_k6LyVg` zuBRETZwYgkTitR{P%(49Z!68X?~E8?a|}uc+QqiNggo9?os@9#G@4+5xa)42 zWoS@D2|h6xN0EdaXxz%cq11bys=Lrw=}0uLq@n*SL}uY*FTb!p#~O$2G7E|= zL(ynBntQUED2~*j0R-WvL6;;x;YMCFYXSEsxFAnzZHhWi`TL5hH@ z7r2cQM$n58ig49NTf))N&50s(wO)l}c8<7Q0q(J?`kS-Q9@IBTRziY98fCimB?I0L z<}g+Nz;uQH>|8Q5Kg>OQ9&Yr6!IRzHvon#gs6kCmodFC^Cq+6xZUj7g_|OxM1EB9E zVVJum^$`{Wsz{fkRkfYI`YtZ)HO(sm(4@rEUl5D@-o@ZI;2;tAvqvCiWz{wQp{iTYCgZJ?+eKHS$m3B^{% zz8X$r4I@U~8TNSGlN`cX;WjWb=W(h;P{QP_zfJ7@NQXX!PaCi5i|AoO0+YrR>+k(#|PUNsej5Wqs{$%|ww^XS_PTO8L{USH`aCEw7(VdZg!ofVFg=1b; zOLO!an?*edFfN4ufHmUPgn8j>%zbOi&AFB4WOZK~cA&?|GN+YubF(<<5>ATKOhN$Dbl{o|2_8p=DP@C)SO~uZ0)#b<) z<(6pvMRynYq2Zk{{g_M{PRL>9w^l>xuX9&QI*J?e5w@4q(psd!;xRbJ_YYLuO}5q% z544E*Ad`kunJo4Y12R^$N}e*P`I5FTWpQ zk+TxxoB0fXk3xox4r=#nxiszmmIrfheeYfg0wwejLlk3pr+1Q3^(k4UGCqnNU#(`# zlnnN@%jfwH>@G_D;hTGNV{|LPE!X^3r#j_CHgVcH%CUbrW`4i@vbqC53e<~2n;cfd zjvk#%j_b4gRgL!|f{uM=^8AxR$IK0K9M~s>baFJBbSIr|Lt?=J3KXBA(pl_p2y`ul zI-+}ctaGmnceIgxoXq~~2C|W`r9*5YNwajD1+!^Rp6cZ_T~3($E}yW%0EX~q@X?z; z)^YbjI+hab-4o8x-g!a#9D_usMKoaAk*6DLSvahI5%M3D4^R*Ecf=xBZ_o)k^(TGE z&s76uKfAkfq#RLb47Q}mrTSDDvBhf=nzMY9)~dz5v%n2tUYz?WnTBEp<;?){G*XpP zsy5ZHymCa#l<|ig=54e$oO#Xw`yW4&JWcx7EEycsOcsQO^8$ZWMU#m* zSY04i7*3{e6Ap6E`a(La#^&Sk9okojGgMaUFW*YI=N-F|Q;Ji*=m3*2qw}cWF|t<6 zM8+{Nf`*?h&1H6Kd^s?3T`fKGS%CB9+?UVZBWO}Eo8*uQCC)qdhOnzmWV;6MxdSRg z=dfo`l`t;nX-_JTG9jx6ol3){Oo<`O7N@BwA#r^{`-JM@C z)Ay(X2l@Lkg42ZGSC}VBm3Zpr;xMY0A(gm#NW-V)95203<&ppQScXd=aIDFx@-A9!_S%rWO{Hh31R=4zW+R4bz!Ste;* zk6*%~tDQi24AN_Rot;{_^;(1e*;{wdLGP75CL{JqT`~U$f8HSi^4u@U(4q><7 z(YO3?5a>yhzHpe`%kXHPvyjQPBmt|yQC)*pXqF9y-foZsO@N`>^-V@+ zp&4rz$to;Ca`bnfuL)Q^m|@LEVlFDqpHNWoseRujM4lw2w{vaTK_b9pirh?MORIbd z2k4EJ4sVon1qX75Hxns3}OI1tQJZrK=1PnOV)mgt;jb< z%*(v?odxvx;N1dqe@w9JSCKZ4?*wEIw7?M2Y3?5c*fxJJG`%C!XplEu6SBn(xW{cm z{VO05_eiFg(|35sgsf=Q|4jdC~`wH3W2T_?zmUf_Z~MmzRK|A(1ZGGy?(6eb`oa`z}Ma}K`bVw zAH60g)LtO8xX(i|H-b!C0G4BwXHy^3mx}B}7#ljj-@Fa&2{AoNnuO&9BKy=Jm>J_< zFl+h1G>Fyqt-22xJIqH5E1ZL-)+qgZw1n_Z+;(xwJSN}OC6XYpKQ|tGtn(M%caqC| ze14Nc_1CxZsMnBHcr~@RbIV+G#U$6~IQ7=|mId)i}QKGqQYChug zOAfM7N5|6cUgdzpu`wQMbQNz}|?W_IeG?dr?bRu2w z;T(2nz|gsv2&tt^%V4$R786~9vCWD|ce3O>n@Dx0-0)H%p?RpI7-h6k!hhJwpkx~Q z0iIQ_H-*JSrM6RIjBr$-Ta=Z$_W0P|q?DHT5eqCEsS?6`873mH%ZJBE(obF0Hbfig zarL^sE<1N|iskKvJ_gQsP5|WCzu$_)DUa|%xd!1vQrQ|g9&>I}7D{lGUMFz(2p4a| zqhqo3Pu(AVH6XAIx_dph8l+DR)<@BuA~s%vzI8e0;<#4it(+56O9>{+}aKw~` zQL{JbBw6=;wmgvG8Xoc%)ISN*i#I6~{?}Vlokb4uA)pHnbWw8?*671#Qp@vzuQGzI zdC@B2p!5*2x(d32U-#Y+dpBTf`wNTBO*!?#1ON|_`AVo5ei&Rl2V<9BF#u>pd# z!?Wl+S#-<^N}?uzdF>c1@r*cWGv;pAi@Mcb0fvcn z`%~WFRzPswxAs$1TXLUAGqf8**0VLQ=PWaITm73KY7pKS0I~G$;*a73^Q}cnMV(9J zo19ilmGwu1FCiUHTOPtUys?zCvg%{5wNl~CJK@~AFyxHQ`m`0q>9mZX#>|9VKodvs zqc(if(KIyo87iNU&+*FPRHA=1<(v>C^Vd%>SG6@|%j)y4tlkOrKhRP2$GFyn_^!73 zHTw{Jhtwc=HP#4q8rs^Hf4qLpBY3A#Tu_HEA#1K-{9}C{9z$-h5O&Iuz5Y#%F3j*} zZV5bA%6A+V{2?h6t@(O~A6ji-Uky;Yyu}_*) zvQO6iMT-}I;CsuHmvAsen$R(#ysVa8h3c^pxs#yR^>R&U1f~LaR6z`7te($fI2ZgN zEVcv0AwX?>Eu{B?5QIAcy*Ys`<16F+8mUAq5o=A-STp|D*A`kK!e~I)8q=v7ukV_M zlANQ%LbVJ(LT!=)QT&!LVQN#LHDaoWRpMtj4vTmrt|>ETdl*JWg12jno!LcMq!O;}(d*@D~*%MaYG#W0p4Lz6P~hmeC< zhlgm&0X|XFMeWDp6Zy!;QkmGYi2%ao37pW?iXbJF$f92bBq>KqVQQqCR>~8&7`97R z*AS5}25Vmablyd8@V^YEK8IB+)qZtQ)5bS_F>@)s3A}YO{G{=(^!fYo^K2c*T}fr$ zz5mvyT{P*O_2G|OL}KqOmYGD%J`GC8JbscjuAsbUhnZIuvS*u)1k;hKrU8+X!pc7> z0+>T4$4GAYYXEU{v)tz}cOs5TjsX}G3sN&4o&h{dp2?3;Y;gq&!bW*)uS| z0ECLC{qf2?x%!vHz~uemW+pH8EwTC=8Jp}bM-bu3LM$gG0Te?o%Iz2xDZ|Ol4DQo! z?S*D@kpgtHp_BlufV zho^mLOibsv|7pJ1|F=^N*p-KMX8Zc*Q@iA+qoXF0OnCN)&24UUQ$>MQSkh0yH3%T) zO*?W+*701KPFr*JH~NCo0854|XM8m0j&2yeu-|VPHq^y~$}(N5A-1n%iVcpf*r-mQ zRQr<;%5(E;ax60VJJ3A%@^)GxnJW0Q)=@i)XT6xT%I3FA&3@~Cf-;iBjXcelE{zk0 zxli+BI$<~0{z7k$NyyN4nF9(5i0hs0ROh9L9`vX%ba&?6c7-e%ej{YrI#Wi)>XxWC znEiQc`16ijP2$7k#>OmnTeYv$dvBusj=Yb>*2_GvN+0qylo~!@^KUUaq9RhYh~@62L_h3CIa}51UAU5TqRO-3P`%E)Jnu zGiZn$o&Qd!Ga8-byJo`^0lp|HN02NHX)IV%aYd<%@tt&B%N>#Y72bd+Xl{I;;ZBBY zCw#!M`SO`G_bBKSy`STDDgk8;V~7%}lxu4Mnub0N#x{W%%jzFe@$?{bd=xD!V>6l! zx^XSWVw$}8I~lA{q{oE0x1fYfPyGnl4m+EF2h@X}Scrd>J@!!pS#ah)HqKR5T+_;i zLI5T_i8AQzBv>7X{3MhSTQ+Z02 zd#hu*e=IjRv{EH2oBB548YxezIS+BDYW?dazK+CyDHtLO&^l49yl3)@%G5&9$b}=8 z#QMvO^b7+qr#Jxnjnr5hY*J8#o;L}S+>P@ckE4%}fI;@BqGXyC=!VY`^q?qyPYZnd zbT6p?p;fqs1N^my7S?9`<(hdY@IFG)fY8rK@gLmpJF8dqeBG=*F*Pc;T>Y}1_i?Ui z>n(C)7(}dQ?sx1SI4^5+;y7$21pUZX1LfY z$>7&QY??&fPqB|FVV13DCJN#{QmPNE^2tqp2`hP|4M-)1-`6$@SH8d2zrVK_a{{NW zHPq3{CPgyrIe&I;TWRH&$3JAA`A8UZ0q#PKTPcE)2D|YYAt&y5M07-wY{Kh>MfNOS zW-NZ&ZN`gC28j81v_D%AiugRf&9z>FKDd5;wk#&JknTzQ-H8bax^ijk*Ent&!xOle z;Y3TsAzwP9Gzfyeuk5M1xXODK50XIEfzYS@dShgn9&vB#%SiJV@fo^9lpWe(1EOJH zD1u#Uv;#vU=(h`P z!hkXyJTJ5SL(~wXson+EoJ7Hjjf)6TaT<%&@u`QX?VH$#$1^x~K+Xz*kn-~LRzQx_ zjr1tzh*csECk=99thETCKXok&Y=n^VN5Ue>mNZ+a@O`X|%dD)lYEL)rLdLR~!mi20m-i$~sczwJ zxQdmk+5L9I7t3%hw31U2r19h5A{-bleuU>E89Ga4Dtz`xB2el52H0x-(}L z2YujDRZ^Ocsr2FG%{QSR7UAYa)I~vdfjv5@Sj=}w@;W}OJI3wXymM7uCz_icOr3Q2 z!o7HLvp&i2E*lHjI@*mDmI|ADQ@n+NZ=>1vJmO!28?v61Ff+Cyv)y&f4knB>E3s#R zI$i?x_~*6IYSVod1~KAi22dn;QRbh=utEMaTN{NJ{iWZ;#2pBf8(5(4paRxk$3Ot1 zYuNf0K`DuI>$KO(wG^c0(|@rz;bK|F_myVS?88OD=Fi)q0UMrPaxuN@GDXV8xA1wP42X@q?lCd zF{u~C?to(!ZS~)@*|Kyn_NelQKtmp9Pn%MmsfQtC+6WGSUsRnID~CsY>qM31MVe*P zhS*cvk&N&b9-TC%`|a)BKPBfYXeI{{^zQaz`W%^erM%kx=uD7Hgxus}#<=iv*6y8= z_^&A3XKVShyN;=j-@IP^C>vJ33${xoJhY*1C0K&Zdlod_oyxs9iyz@MEcplz6=tud zCHY;YO2hZSuHwNn-m>vqW)i(}L`OECq5n+w6f1xEuqX6-3yi^rqpXdHk8GjmZg&?`wV{D3n+1yvN2qqCZ^yU{p*8*F^mOO%JW*nu z82XkN+^ercR;H2FEUk{8;QMdAMyy^v@5C}!s%^gMI<#kX@b$5qr^^-YmE*S0a^H*z z9BP3@^i+-iihnKLtdh;E5LKZ4grli9*WkyE%A>a{8E@um8UIA)Nm{Eud<1;$--=8!}t_J^H295FH!{FpL4JpQF|cYVk14d%*IHtnt8*PQn z_pf)JLd{KzTmCjgAVkR&$|nO1c>!(`Iz0rw6xz6yTwI^PuGgn^J~$@D)0P)6UR*&z ze$?wn#hTG%GB0kw#>-4Q2w`&^`qf*cWUzwll#wK|($y%NzTJPmX|RV1N5*N#y>)8A12S3DOoX4lj3$&|f9fUI&I;b|X_=JI$P z?eFke=?qm@@%^;qrzEuLPghorznJ~9_Pw?A5~MF*X0t<-lH&?>eGp4)_*v`tmmUs@ zt@@t=m^0XQb%G7+8W{OaF@iixYKeqUD|m%WmeOb+l*Y^neS+Rer1SadmSv%?F6+4~ zr1!e<=Fe`bJNL;Iy0k1Q*-R;abGclqj^0^`!PUB7L685a0hv4iyE3@Yw8-=symN zRmX4QsEeT}Ds2F?r0n)e37RSv*C0ccDS1ipsBXCsZ@X19-Z%7w2m5(|b=^I}Hy=1= z#WaqOo>V^-VJUt!9#q=OdIwe0cV#qjDB;}9)9PY`(h=~_%+rby+Jfgko0LuUoYWoL zq)>q+lCbLH7e;b{Zyak@+b_gI^03HaSN9rL5QFgwCdYu@UvIC+c5!#zaBh55+Pm+M z%Y20JgQ*po?M_YaUawdXN;yV!?@E2*dVx{VS-0+qGhV6osH1My8MH#}_NQQLlUR+~ z(-7T|n)gEvhyeE$%O5EpKe@gdY-zD#Y9xPUZ1^f>BQwDe{^MEsFLTV3KpK8}_ZYdD z{{Lt?>!_%{uZ`0&bV@hE(A^*%gVabPNOyO4H%O-pAl)4T(%s#mfHVTq`n%tEt@mHn zFavY%J?HGbpXc+GXcktS(RXP=VPOFoq-Y`w_Exx!n>Ob1Nwfh?>E zpX?QE)$_<8?j_+u9-`itt8OkcG_`GS04qj69i@b@fqHC~l#AN!-W(W(d5+Y6Oi`c< z#DD0(_1Vca&^>45`I5Su|8V)cz`=kd5t=@6{X!n>+lf%p(yIk3Q3nTZ zOi@Iezf+dEAo)UvB3`J&uz0TDB3|JINqZ*W>W(-fO{(xH zf3w*B@C$3lWP@e{R`O+*s+ojzz5W+h$~>y30E|C~lGf38>T z5;((dC9$YLmS@`J9xckUUQL~vj!+>|_*UpF3WTo7C~Ryheu6=j&5WTjs8Jqn8KGhd z&NVXQHiLd|bmCJ4LELpi@Psuyy!#SqrKi&Y6~8(-CA9q~Vic%5vJ?F$wMugF;glp%%YOAEw&_*01ogk*))~5WdKKyp#=M{9`0$b#UN3V+zQA7c;+nAID%5K|bmetmG8jKL zbB!4E!FasId5l(klVk1bm_PGO%%Ga_Mq{0S!X<#EtR>R#>{sQehUXB^kw;b^>9U&xkiTezy^;yAa(+WMg5 zlk0_&v_1ZGWCmQyD)Q0aFY{lkGT%pc#(|;^CyUhu2<^z1SA~>|YDGD)h@K@OhsL}d zel{`9Zzmb7-hG9I%R*s=)Km8TU%Q_39;_pFZVs>x$|vE*AErMZ&LfAd+x!RCpsz40 zmh2&1nv292f5U&M#q!;6hsjM>eYe~y=$(tz^^aLr`ya25_g09>B;cu38svo+?;s>|Y{JSR`ju1BTI?(akFvvY6# z);FxmP8XWa4V{ZGVQK>BQwtJpA3g;*8o4%MS8O979g)-3HyhwiFgm2#EHHhW;{BXD zafUPDpl+f#2fDnbSRK1iU^FtTp4n4)xJ%bNsE0q)So#pXl6QfGoDginR@rEB((Fow z;>Y5mUjitp(1h8=3qst%A7}Tv${si+3l?F|A9x2$`6EpL(bVIf^#q^ozPQjxzyM1$8H#i{2!~lf;1)H3!eAyHF55j_o--PfIi{|8|M5j zEh#mkVOg;OZMh|o83yh zoT>e`yusa-y}qHU{!9A8!BzQ6iJLoZ@j&+n%ju{^kK-%-2uP-~W#F&URn}?{_`B|E zj(Y$A4GIck^AnGS7#M&RTtqWzjU4<;yHR_j=|oc&R!7;$E`c@@4Wme#J30p1T?oE- z?PIwv^W3MOnUtI0kvGq z)N*}u=)7w4IVnV0Q)bZWdmT7tYOM_OqLL~9=E!=*&={AA)qQw1@D@~MxZ)Qx{s%)#ZUpDtuB z+3pD#@2vxpSP?3eeyrU8S~`d!<#Jei%SZu@zKr{apds%qF7iVmx^eip<60EKbr~t? z2ZP)yjce>BqdBcS_5y@CN}c9Dlzt2FXx97^{69;psh zFSN8<<6+G7fac@rRlU6|{5z}(MMXU1%%>zFG8ddy3?-+?QbWcMRMRdSX=|8G;M1-5#zFjQ<1g0PZq3`@w2`12 z`0w(YvDzyao>D7x#b{4@-{rj3N}{;KQ?Ss#F2~tZ4Z8k(}pa!}OsN6EM<=>+&*kgZ% ziB+VFem2>S*Vxbf^&>`N-jhTJmV_0Vc%+CAK&kR1#-40T-*W14GMdqDB@l4^XeT!gRn zR+0(5c|SO1;vZAvSLT@pJ59oh-%zSKc2pKW$U&@$l?2gC7~8&E66V9Y{mVzLq5WeM zdeX)So}-o9w^LWV1Dg23S4gW-YzFaw!HI)kIvk&})%?HNLV$ODbd`-H6B%QrDG`V0 zj#ISHO6-y23zDle<@sF{9Jl}*usf3spaD0X8!xfTMU!xJm^C_daM$^d9X`>?8(u@U zU&-MUqDyDlu~pyV%zOeV3>%wJ-32*r8@I>SD7CwUKPw?+%r<^@i#wa(78LyE#597- zc3#=tl>5lg?jT9l4Q7N?o!4>tNeQZP^800u6cm3OLg^?Cd?fO1q)V3mrk)5cwuGsM zC16qf<%=rzG#qVqP3-SWO1J>8I}f0f{Q=XD;8}IZ*iJ8$sZ$nw)_mF2WxMm#2^j#Y zI6pKKEwZ8DCWAnDVHK}lFMEf{AGHTz%Th5^adbD|o$e-3;!HR<3G(G*fK47T>aKiX zgkva{ZZt+0GJx<}`1<;z=E!u|Y-H0fRC0Kw)Y%~_ji(0uDpG&rV8udhTurCGtfGL% zgeI8>gPvkQ7L)In%sitGh}U#RJjJOnZ*K#N@|}3Yq-)R~-(4_T{!ZWRx^nzvX}5N< zDTOlAGmz3R^Y5?f>ot&6tl3GWhOZIoP5HmRznikUNqLI=SJ$J>u@Ho$R|y8j zPRU3Dq>6^`3s(kv*rLk5)`$bTY+5eZA0%TW);;NjnEX$=jZku=vD({PsBQ_lXI|@+ zgAs0OBb2AtStV5uS|yW#U?&nr=@>^vDgEN{+68igjYLgZ%D-pfbqLDEgV5})wFQ%j;l7+BW2Azl6gAstDD;_VBK*doR1>BB><6 zaHkglAn;7k=Izm?qcwK(v?3=aj5npHr$~18P}4nZy1i1}vd94L2)yBe_8^-`;4Xxu zm8$gz33$#Vhff1&w_M{sO9`;j{kQ07ni-9Ciw1O<>;8SI5f{CE?R2@xG?UQ(!F%{j zQv)v&f6jFCSOUBdzl3>zglwq{mDnLV!OLrrz5`LCdvL*gBTvU%0I}6JI};0@b&@xY z%_0!CVVB)-H>ND(c-3I)VUQ-S>32(mEr)b0cg)wmVO9Va#yErH5Tb)2#D8H}N~9H3%F0Do)|ZVDFDSSm@IWvI#J+*0!M( z$Jb1(>H7ZUee2@Ihc4!64NH32IclR*C*uk{MRz)IDyT|F5rj%^t(KQv2-LM%+1e z;--&jhoZ+r)N<%D;4+d{qUdX>(PSZ#mbL8XbNBS${@}o$uh-Xs_VTG;=vX80)S`N10_d!Fq86DYkVk1ZSDo{Lit#Jj^m_k zN=>xWQ)4!N;98^s#wnOgqYeU`o`+(H%c z<%-%`UXz=Lq1iIWsIpU}A2i|Ng4HuM9S)pW9<*I*8kOYKJ!*m_Maacx?)}4hQ=Mmo zCY)KLP!LKHzrGTUK-YutIeMdQr8at^Qt)|TYl{@YZD8fT@Fby#64MN|kHE0YKLHKV ziYKqH&>0HD8Q4TDI9?(BfTT+8f4m~6z~qIM<^69n!bNNZ4OD&C5=o-oshzWl%@ zV+<`ltNZN3o^~v_?X-!SaiYL+C}M-9ztwxO`HX*u>YPm+K_~>G?}O=mTZJQjPiV<| zaAxCuXzQ7N4_n$b+@LKPWmeq&ZnUF8%c1gADE=!hm|jLf=M&@yl-I&B^IQWruMDhx zCqu^*lpTC{x<1#2pJOLgHFM-N{JN5s8!H2X#q|F5Tlrp8{UDs)g*TWp&zYC^@Q{dw zLp5%tIdK?!=3{7lu+e71v|M&gv{3*<`N3yCw$e355MW<|K=w`+o=H-`PZDbY-P%p; zE}t7Bt69I3aOa7lHB01`yb#-dbn0W+n?+tS*YJYjwe4Vz_=7kq%}$YJUGOEBHd9e>JiYE2<5u_2`!U}pSYqO2LI@807WeaUoLBH{0|#v07muEKFQv% zM7RchcU6D2TUCDS-abQbl?CSKwk5}y+?02fnoVEjejYYUA(J@|2E~%p>QF(Z&RQX> z)lizd2QXn!x)7w<*W^e`>h@@CMpS16v94pL-jo@pWn33aPiSs5L1E0Mt$Ssm+tt+#(0wPzoQ z!qTozvYd{S8Fgdtn4(;Kzc*spug<4P<7qxRR~Upd-_B%=;?0ytY$vY$8+8%A6CYII z8#*!cHG)~F&2`=z$tCZnpwD%7!5-FVk?{(S347`7+y|KznOMc@D9L}xd8YTL`2>^d zb;chQ9H;$OhPdNb+wmcaOc?-U>F*Xt6lHCDY7NK3Y6&(mc0W>O#sG0i!eamjtZC-e z$jB2Bl`t%A9hdtn%_j&57FOz;>9nZx(vvil4R^mvF)rZXr~>}PRKc^KYX4tl(9hWgo%h5 zK{Z6gA|t}F<{vzCOi%!HYi0&!R09SuPH&|v-%uMV_bd==)7=-uR2fwY!b` zi>+@8-v7G2cxZ&w;N@IoO+XZ%ji!kd9;>HqUBcQk?GvjiS~YFtl9O(4 zTK4i`sn{cB;2eXCto#PD%*gm8t*Xi^)NgMr6e4F(PsqYxO6s+=$jG*hzrp1 zRixR1EF(s$;O{Hppu5b}3%Tt>8w{uf?mC zk=^6s7E*_kYUdF$LYJe)KjkiX*{;arkcn&farMa+o~`Ha2lPDIAJZ)MtQq15p6_sO zEE!Ble;iEHN!=6>{;Z)q_m%%v)!`{T%74*Ef@IfjyNunJZrN>TKiQQg5xU5in2Hie zH|*tq7*2xBRF;xidICKN#)86%B{)aXA-AL;@~_pIfIL5bCp6N@l~Kf=Ra?X}gq;*< zAa2;RF)jfh#>;x6%8h;Mk@DsidBu<_;a&XI2Xf}Qq`?RmMIsCEqH~krOg)ZLSOS%p zO%?Sv`3HH&s5R;prr!eLpZ;+QXUfV$N)7)&@$-0vS`u@R0gt1q^~WokK05*P4bP+!GJ1?v#pGyZ_e$0F8gJ zJT2QGSz6*arazTB=LDzaoQ_$K3rJco!GB@uvBb_ z$u*S=c`+M$Ar}@_P8rj{S6}TI3VZwW0ZzN2qLda{_8i}qNxC;5il}jJbGKBj zZJyqIo4z?B5qCm$MaHYBuuyO4c#} zDp?G(r0rPt-Bje*F3~V62Q{)%zp=H0r6l$I?>}U>6Sp`0$&H#c0|I(8plFt(VZD7-Q52 z<@EloE4Q{|KGfQGHC1bKf;d^k5ZMRQd^@O!#yZ6m<(6_cQ@aXZP~c@i2*s96XOyoy8l{JL2awpGgvb=x~DQ#Yybf?Hr&y|rrKV9cSh zFs-=4y}{L*E7ksE`|d}Aae6!%e6^wDpP@J>+3$NVm>_m*IJ=cVV%>Rmmu>BvbDbZu zY-r%gVqmoVW3%$^+m&qL1RgRTUJ7BUGIs*?PbGdFIegB2FA z^(z3j{aaG5zr2z$*aPU4FQZTA{;c&_Kb2meaFWoQvfpM@bGsm$btB(}%VSzo0ol-R z6_vbv`Nr&G9>Pn>yNkuU+Q~r7kSSl$uU&zco+tl25ABC{WP8f3B~y$54qk}(Ez5!0HYwX}(D~pMy)z>!5^eq*3udaL_ zDxE**e7aHP+!T{TD z7+X0&089I}3~+$~C@X$G(kYoFOHZbD(R?(A=t}sb)liM0`x(95t? zS&7*+{LXN+5Ozs%+LX_P*TocZo|Z0zJkB?hwf3*cDjmh&%mNskNXBs6wmvr*fO1yj zOH^zc&P5yqL&$z(BPh`~1)VimJ-L+Z9P+7=)a7>eqU`8nLdie9+pM%4ekyTV02-EE zu27haEjF4*KC$>F3GxeEMMOD=MXof&9X_(5fZWn^t}Y5iZH07D>XdVxHI0q=e6zEud^2Q5 zV-yNT-6o-sA3kE#9T!~_ON6Ob9NShkn8A~EeSEn4p1zjc3U7uP|3o1J%4&oufIYO@ zRzDBll&=XAn^q*$ecD~JuyZ_e&VZWwqlO^qGo0KYe4yS)MA5qrm!;~;B0yIgz1ljz zp9ajX6(|(~y9se^>TkcO$uQ5Ec)?6>{+x)*wY)vwoLut(5?Wq~Bq8;uw;=ZblHY_8 zX(2vGo_r{~mDM=h$EQVJw*u3ZY4sU>dOl^#*53`&J&g83*bu?aX}laAIh*ZFogt|n zj}M6((>$I&Z^bgNkywn)NSLAHb*T}BFK>p{_}N~zW(M*)RsLGf9X9>@gEMbi#{Lf* z2pp*qHYj9bUYHILP4yT%47yWEhN1_FZV(pt>?hmCbQWj@FfO#$O4#<3ulOcle`RL+ zQb&2vz|uv+jsQO8B-i)+2lbXNAtg*9I7>v6uD-F5&I0i=^QcI75}FdK!wNS;Nz=Yy zbw6LU3@MlbwD0RN_!7bIA^|=HRB|#Y9LQ_cS)Se#6o4rPI8@I@zCN?fWCAMI{ga<3 z=pMB`>o<+>qB;!Vl*E6FiOyb^TE??gWLrgpJxwlp3NFq8bAX6s8n0|Ae;43UQR^9x zJAtN6hByzVP4wZ#yheUdpeO+XbpUM%u9B6Bo=yqjARS__XOnN%m@yWW}3l3UK8f8(5QfK&-xUKBmR}cYhp0>PQ z3?{Fvj??GY{rSph?W?^B6YUDZ@c==|-ukcJGmhTzwE{CHAhZZW!%{N1<&ehmW}~BK zAWV~my*Q*WxYVdx`4_^g*?N5%-8KQ=iL}57+fL}74){~{FK{^axE@b)b87xe$6wlC z9GqE;1Ycis9aA*LX7831dhV||yRV{`t1YBXCI7azlxv9qf2I15dVpo|uo73k9o+%# z)U?v6 zuv<>eA+SyIg{G8tlU+W0%&pVUM5hkVkQDTN1j*E$^|#+0)bcUR-`|7>c{9GOu3RSY za!tV?RD`kbMwmpStz3Oi=mYB!?Co33Big>Ku#iKs>k20ZgTEdMlDnAKbr8mWIVpNU z$p|Y*J@5kcAOPE&=Wwz$@D;_j3lK0-!+*S>z(!s^_?8#T%PLEwcz_2v_qnR!;;?XBA2q0Hz%a6bh*!oDj zL;qKWkXS1*Xxj`o-(e8XsI~Gsij(zCpTZt9AKfMOrxMkOra_|bRl*=h;#|NSR`RD@1 z31{bmL%`++@QhDuj50jpM$}XQI#aGt0KVQWL?Kp{GLi>T*P3}4T0V)MSSc6GvRnG{W}J4VACHsX4mY*7dq#jo&e0TG+o(b@27Qb+4luWymtsnY|A z8g00(O@Jd9`t8d?Y=>y3#dOd=fs}=&14Jp+&>m`1dMWl%Rxd)U3N5x0&*+9ivWK)k zQmlB;K@FJhx|Hp{TPnUG@}F#!-ExwW!*B0zjZL33qxDrR!b(JjmAiIHyp`@;>JyuqFCZ^*-SXA(X|0D#;F>>o&6Q~4uNLGS2kH4x(ynqPwz5Wkzy{VwgU=s`^< zUF9Jz!gQD=e^Un#+UuU5M*z=Q$hQ{%+zeUs0SPOGzFIinuG zkhC6PO&+jQ^>j$LKgjx6c(1rd-Tu`x-X%uT1=7u;TEY4rww#_kNYEvCS*>4lpWFmYaz# zrB#I_3=LUuGvYWqAmi|*pl6AB9?55rkhT?|IRvO9h zjeNNUL_4%ZV5|KvL@xz>dkD&fqaDQm5G5f~(`f{H_r6pTB!_M1>#J#!L~;q3%4ln( zii|li&4h(jvUeT(;F8&%HA5lc=he8oJE#EM49KDb4|yCt_aM2NP8^8|8JEGs_KDIq zH3*>%{YCbTm#pE0g~|<2Vp!KjpOXvAL&Vk5lVOcT{1w{WK0Eljwzr$Y(d~*v_1tI0 zPu&*?jw`Y!TqnFpug;HaBn;OQ&yN?|D2RZ5H72or_iFbGz{&_N2aBXm5r+`&6Bb21 z5k(QU4ZBZ8oM-wRF*;eCi>tdR3gg16U(GW9y#SWKNA?uLNnP#zb7NK#RW?aSRJLbK zlY_#9xQ=h8u5H0I=j{Lk9D8HU14zIsldAta+y|Jizk0{8JiC+Kk)j6Ts)T!$t*B#KM})`^zD9wrISYVnqQ+GIyhlZ^;8c^bp<^hQPT+;JY~(uhxGbkS>!|`fa3}a2CeAmBXODw=%ZxJ+ajC8Ep%$?YOk!OVk_x? zy~tHDiEP~XY^6(hGhTIpdg#B{C^`_^R!&n=BHaxm3hHAL=VzW9frl`pkwoqy{W9Of z?=l@~$_$Dox<iO@NhZcwmJG9$krDBCD(qJ_=jO$9)3G4l9OT3K07Bl50=8iMYQQNk1T!2_DF|JRN^TjEy zPWd~#sr>EEgFc~JCRBVTW2DL^#PP04)Bd(TxD6bdBv`dA5D8bcaJI< zlBanc>qWmN{<&70v0F{(Y9kIy%enL7wxhCWSxNFY#krG=pt*xZsi|;GU#nXY21r+K zelI;_NP7T4)j<2sN)`wCi~XR5TgP$|%YSJ;uyf2>*?(Q<^@N2OZlmsO*1ox8aY5pT zD?~ofhFFe!>80og()43wwx#KwZ)-u#HSY`ux_Q~wCt9up<$&cD^4$U|N^S)%<>JVa zpfV-=fCO*f(x+?I!@DGa)G9BFLu8Wh>ziXO8tRSKhhD=s8~gpMF$vf&qSzk(uhK#D zpO@8UndgH*adJ99hyN@E=VcW`OLM)`Gf+vo%D)3(&8EbV{$*h-YN?`64 zPMUr~HecF)4p7TY8bGG+2+xEb<@jtTKQleG4a|!LK6qarHc<;w6ZOej)>(lfzTlEm z-TYwf9@2xzr=`PS(q(r)lIdiZ^b>ieOO4l}%BlJgmETYmw~K||HtJTUzW+Q7Zvt>G z{5gFQ4v#M#?>gKVhG$+A5V@RDgj15JLyxNq{N7ZcsA^=4pXYCEbt6@P0tSBPR<)xR z5JEj#O{lcu@FITA9~Z>`UuhNhN+Z{aX$}v~l7cruaLEF2|4yWD|HIyNG*MB#i#HA3 zPeAl!wofpjV!vY<^bH%BzX=v6dmuuZ`_RRA?l>)0*^CZ4uP_c6@va+H*|SUP&Vg)H zSrq#Hs90=$1AHdAxUFZ(08g(%Xqx5tdmGVeDLf^trdJYf$;n0-V<|q1@y+DG);mC{ zFED+1<40v6YG*&{hmbCcCTR?IUc7-c&>%O^?625RpB!ZPko`vCuSG4ug_3i^X|!|# ztFi9JCpZQ)6Z$ed)&?-|mWB?TMxTpr4qf=GA%Qlhd&9_>K_GD6jXAjRv(HcXD2w=h z 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 literal 0 HcmV?d00001 diff --git a/SBNYoung/Images/coords.png b/SBNYoung/Images/coords.png new file mode 100644 index 0000000000000000000000000000000000000000..05510ba6dee8d7b0642574ecccae0eff59b1d243 GIT binary patch literal 83688 zcmeFZge|ISC2)Qx``IYddo!B-wWf+V?cndmm=##YRVuKyadQU*Ji;h`|*P zgTpmp3DHno`TJ;Mon=oL>OF8eL(4*^w6sMZ5a0-e8SRCk5SSZGNU3Vfhd|waXb)Wt zrwACfUaUKM(sZl*v@!El9m!sl__kO**{3y)z^Giis{+oxD_YM z+swR+h1fJI@q=It?^J=8y5fuI$=a9@MeY<2MX8HDz?*O(X(JTqac&EN$7pEMi zc_D7g{=qIWRAe{->r(Ul1$ex8AvXnl!(6l7sOC^7eQY{Wg0KT~51RV^ z8my@o{ilZOL5FWWZ^G%peK~){W_IOf)-VBPX=3bFTuBHw>RmUB!cXUK2W(;OA z1L$SMkqKqRXkbV(1RR`H)=rZ5Go7Nz*Gm)oLlbt4_W{653WAEutd9luuPT?>A&LB5wV}H^kSwwUZEt9_%O~V#K zq+`REQ=vKE7rx67+g>`gOn;?XxUvjT_Y>ZxYMtyzG?Mw`Iz_(?`5yQU zLgRs3{8jhUGP+=MW5)fmG786vmj`AN0yzQa%SFBn4D_yL9=k5LA4vNN2YR&a1W!48 z6$|OqlZVYdm%j|`#W_lsW-~}P&_{aeYa1V6=t%r>0T$wXz?d|N8t94kn4`@_9|I{; z2qo}#m(lXzu0vV^5~<^IZyt&~mbM`3zM(kYF6SL1$df>(fo>EpBtsagcsnl)^QRbl zGNkxP$d*2O{>y12WV*X~M%2&laR-+g-J7~|`tobm1I|G8#V7U9nRa(4!mhPep&P<1(?2TjMy~rZ zL!2dhaun;BdL|56@sX*KMKaaetBMM%Cn){xAExw6pp0J`D(*ZJ@*UQ$z$ziR3dD2f zAL@9tgpSpX=R}tAX1FtHiR3`Y3v)i)u#^0!&^aL_!bs8yeh%Xec^9Ji#Z8+PX z5$HWx>0eQH5s^wWkvPchP_LxJpj(Z<6VDOv6JNKvxw*DEzlk>?wR!Zd{~LB;rglKV zZBUU!&Bw~ZLJdB5K6jp)m=|f6iPE_`;}C25YTp?bU4k9X9pqA#mt{*IK94Ti4vZI! z6pYsA9LUF&Sm*VQrRV4r=;V7#9#vY@J<#db4J+;ZmRhWt?XI|$uT{=%;1ljq?NN5h zzSA;8Se>~Q?N;J0?sm>E#V_Edyd{`#>W0CeHk8Yfv-cr0+jA4w-QJC_QKvDl@ycD# z-RIctcg=)-Y;HI+YqCUF`RqS`oss%13vg? zwTiY${?58}zlpl5_!9Qg?xp74n!9J1&JsRf(O!>Z))8f}ZIcxWjCnqGH0$m8O0`Fn zEqy9oAzc;jK~zI@@-U6)4Y5Kv4^bxfF1K+qG}SDngp1F3%v_%5gohxdj7!M+GPtnY zjLkK9b-=3h#%N8r9OG_M2V?eZ>YAU zw%Jsw_OKFHx3rGm@??Idi@*0pg?s6VD~TUTq*At0&7hE8s(qk+hJD@+mq5<@B!k)? z7ERnf6Z1cwTNxS$Oe4GRJHhzuJgms2h*pK<1&drJlw^vi`YYNiW)8CPzS56bXRDWv z7mp_9s!NwY^m8~SwDepjU4K91+5Ib=n8#u%`I601f7`%|nSgmx-?}Wj>_~r0->`|V z9&N6+{)fxQrYKLt?fI44>96Awo6haI{o`XCgRXJwN-PHDMCIns*IUr$#paKiNt#8@ zz0OyzNKY@uCr5c^JzNPiA)~mxhm3juzGyaEuH4>#}bGubh1L3hE5z559B#qg=|urbeF)6d4AsXv!e@Kc~skVue)q`t9ut@Y+K zq~XmVy6t`15Sfs2^tN8MwS8XA^bF^W<+X6z$Smm&DZ6kld~0(0h!XOsNOB(k!E+x~ zE!Cd|Ggh#{chB+sM7n5bSk@-dI?&kg7-$3|9^nZHoa&PbIoQn2*Lxm_9WegfqnV=V z!Ar&E!c)g9#$BLAp)FP3Oy+&@GyPpsEM}ZkuRHyR_>Oo3`j$9xn$on1l+6s?^cSX; zgDb>wEQ)ODu^g-C8iR#%g)(EP)^gT9MDQng9$`~C5jm4OOFDX0^OiD}dqZSBa(#Ts#ffQ&K8ht& zLl1aVI8wMxb(=cG)Shhg9QEoYO;SZf@5WM8_Et9f8h8~r#?1BwM2kGxXDOijm6pMK z({q1^_$M(F$BrfQ`->9R>iv&8=TGKK@~17T2nYOm-*8!8>6cvo)-a`E%0S#A;@DgGS?x zBwYXAPPO&1$}yFGuYTrR-nH&S@_UJvPaF-FDopz2f65>9krYF;c63Tx8l6s-xt1p< zO3cfcbgm{F3%8i#8xrgdRCHJj7gWh~p4WYL`Pzq>$&JqQyd1TNx4zeEd`xMN=ZME} z8n=G6U2C~CPfx@F&%UWf$j(P8&)s|)>t|%}BNb1YUBR=sNfphe`<@BAm(6<3O{OZ_ z8EXu~MMW*rKH3_&-wrp+{0gsTPVeoN3oLpWU5Ryl9+Oy%z8(q79QSW^=Kbk3j#Ex` z&%ff*d|dT%H1^>K3kxNc(oeOy%nfBXQ}w1wC#@$k0q&RXo-cJII-OgV8I_+Zp^v&M#E*R8bN1EA3@M|mse0iFlsGXZul%&#_+MDF~y+en!j zztFvWu{c;+ch}ML_v)#(x})OWOV5VA%Y~$4;^Uo*#gnDE?hjGJmmdQt{TP1Roi*Gl zbR_xQX}EI-w=7=33%}h+f`c8&tBM3kmt9bx-G{_H_K=yE?(N|%|J(L}FMU@(v%HW# z3BUqFE|4U@aP&QxDuL&JdF~t%g$*qz-f~iZ_vGt0DeEwFNAZx>prE=gr07lL^Cypp zek};H?t9bTKjlV>@a_{R5P!Qr^l4BzNLP<;(MNS&rLFhiij0oZ>CVF0Z%E`xq-kXM zsw?0gq2|xzER>Xx7{GH>Bq;JjBoy!r8T<+(llJoBt;8ESw#oXM%)ymPW zA(6EYynyB;s{_8>18T%CvYguEeQ^Kp)*8>;o+&Bvn>yMv8=E!jJbT}L? z=wfEUuO=z|_j2$rAxbMZHz$4;7Ee!4W={@gM;A*LHa2RCCc zCI?rle{S;ceI(6YOf0=2~koa7W&W6Ki|{b%ldy-a&Y~-EwDir z#5*i(%&aW`xi`2}5b-MiQ)@4CI~_@DdtfuLhAAF zzpwnScmCg3YPy=cNI2SqCEbMo=eYh}{NHc>y-<(^vGf13#6M>K^D3~jFuEYif6h!8 z{o$QAcHkIEttC}7z$0)n#1FD1_z&GbkBH|<<1xPSg-A%ENOF>58eYiT@9)jwOQrr+ z$O)Eb#d%DJT7XI^7k{5YHOC~62{yR(J1!=fFzJ%OWEjy*S(0CJHjL-cqWof9JpONT?`MXFcjj12r@ln#gQmqgAR)AlT`TgBJghvq>&! zgw5gnoTM=NYF%r`sl`#jXgta1enXqel&Sru_5bLTg7bdWxnbSIJ{wKbUfb}7yoB9 zQBJfhA{o~?D|a-UXP=CMbecR$cSeaV(~Y?u=6;=(nRZ96eZgQkj+&-tMyBsdiN7pL zXHgj)E_&`bwrGV+gBhxj*7T9eh~R`1-7|tAT|w)%O7nXaQ<8qbK5zZrroyD-kk~(m zg$~eN{YXe5IfMX~%;T7$Q|IuWiJJNu%Nq+g*@mC zZ|`Smv-@6d=;*^VZk_V9T&Jq*$@AtZ+R;1(!tokg?cd3dP(|SZ&{$gJO3nHcAxvGb z0x2fFTFyuOZu_Qp3d&Y4=Nc5(U*aKOFc&w*{KR!aubo|!xKKg3fo8*ZC9MK1DDVT( z2~=P``wlC|UYukB&ob|=(mK1g7lw1QZoEw|e`tTOkt*?^?0kmK4nal@c`2HIjxI^qh2N9UeFmQx zw$6#{j^@7Em?(@x7#03h5c2sP$$fKzEz|e#-9qxwu*ibj*7rdXi;pi*p$V&t{><_| z=4A@4`GTu04CcjeOni68>YYtFy!MS;f4-yb`Z#`!4}tZ_0{5hPC>$ty0`t1PSod=s z@V~iCsT$&ET;EoAJdsY*9KBd zx$S4n^n{Gsk;e0t(&EXQ5BnG`R{Iiez1PFGGmY*+U*ZtC0p;%($y-loE4VMXUDZyX6?^qn|E6p5C5$Z;647s(~G3FRW8-5Q>I^5ri&OSaco|~QsN)C{Vm}EM+yqYMeVv* z|1*?P@#S62?VDQ11qX}a413|LZ4RFjB(c;Uo5?Z*u~~^#Z~zX_d7nL@Vp4K`x1Q%y z&EBp}F8WO#J97*$yGj5qDI+B$L@e}TGwL8CqAnQ!*4QoRlw7WqAw5$7`37Vx{e z4EI)Q8yNkYvJv<)T71I3=bu_U!yYh|xab3u+BjnHgdjmf0cotSzitqKhWp}r?#@}u z-6v-6NcX?oAW%cQ>4ibwoA7D zUZSH_I)PCa{6@C=VIKKGB9oqlJJTy*;UYYQh1XJT6&u@yNVx4-L!Xx-iQ|@v_p(dU zq#-RKpp=e7gwV9Q1L{g zSc|Ec^ytfbE@5=>EO{utneA+?eQo4cSrfDANJfqAghFMvNr}tv|lE zh`JyLYhgiLf}&lvX)0%G?QIRfH?8N@?7si)Fs|fwLyGR}Bl>ng!E0EWIWPZw*M1#92*xqH~z% zvaMvcapgZIM{C{~as;-6gG%QR7;j38o;q3QXz1DV0K}p(2n%Y#dN-zr(2N(G^i_@v z!n0GVxzZ`>%6!xxUo$d=YegEE+2*B2>u?pT@)>_%g}Ttd!m*vkm3WAC?Bi(}wMtm~ z6PeCJeJfn_KYBdkusNm^Np<(0JR}C*=m%ZNf9y$33vw`Pi_e+I8#@Z5AYAG|6aAb! z3UxUWi@mg&oaDayLH7H}Y^Dq~!5;!C)FKVsY*CP7U3?FFX=Uy~nO=!@pn{w;=X*5x zJ)k~^8Ic8>PiJiXD;nLmQb%)TXeFypMa)2^pnHhidCv>@`}I{OsMpeby*Q|%S#BV) zChbm*RlS9IT_1E0-rii<+jd8gSU%*k(I`v|I3AVxUNR$9ueC`;4_@Xe)9}-WBBREu zEN*6um36hJWNddN+NiZoTTBi&nWZ^y(@Nk)P?j}|Wmy?qQzPu0fT8`kc+ZUY7 z8G0{}w)>;0Num}UFdB|18*}#O4~(Oa_kZO^rAoZPn(i|6UQJl*z*8wvlc~OZQe{Ip zqQKat%lG|H{aT3%bbT4^Sm7J)ns9Nnp2oA_JKmq3cF|))t zW`oA$GJ~eZKTExXfu&-CK9G!3@9%%bPW$=>dlpOI{hQ|6`Epdbi{(nylhrAdli2c# zc+(ayD)8m}Q3Ve=@YcR!i&Te}>Z7lf|d!g)|>5%mUf z#Rg)H_Z1&#aj5r4B(RB5hGX?z2f4hDI3_|X28vF8GONbh(03=>=#pMzLo{jjr%a<# z?%czg+KWFV($>Pi(NcAK-(w@$cfi(7x~yFB3JEGMDjIZzFFGt2MJA;9QThEGg&tV= zCpaN0;XqE2ODLJwB64oL0&a``y1KL9Ud!14#&DYv7O9}ombSm?|13tiI0pyV(2};M zNG;_spCOqx#J^d<3{;Si5K$Mi3k;U#5x4Crw#TKp#9%v`Ae(5vBAXP4V?%e_ ze)}IyTV_tDmbKl!$USDdhzHPEr^-gEG?CMBevYA=U{!z6lB56wk|*2VAl4(b1mJU- z3nB0-dv3@1?aAD8q);tH4P2t!?_(@aPGHo&j8J<>o98MHJj4o5lr8e~eDo3*?gTcG ziU6${bHHozJ$7ci_Yw|C`b#c*VyJ3&L59>_B~l-3&dvWqgmXT-aBI<~j&8?e{3WFM z*taX3*aGAmSl$X#;p3B?b`FZ{eqQAk39tTqXkKXZz+crdZ>_9QZfK4 zqmX}|{DoRUmVjQJLrvcSZKkiu-ejY@ZCYP%8y}+PC_~A7_r-Ge)Iq%~QE^fxOj17w z_TUom*xpx2f3aD(cG%By7Bvlu=@&7hr7y3fH`3FOcV;K6Z6}8wRf40Wlm?K+$l2q|`KWh7#YPLIf?|-@iE&}U`0Pao~BCj)=e`|{_8;^J_=om7AIlUcwXAfr@)CZsKFxt-LKqGEOUz6v>rcqG)t zUzF*q&?=_3eD9vPFS(2{pxw*+{I z1!nG@7kWy%N!kOG)MfWoSYhO#tBX>^&QBbYy{$CWuiC42Han8E)Nq@!eP zk?WE2)d7xSP7tzyi-403RS_koiI1DhGZ+u4i(j@FOeJV@t_Dn_AQ}|LS8wT%g1+GJ zdhKVW@H*$Th_$>p8Q_}KSFcYqFVMl^BG4I^10k&lLi?Yv#th0Lkp!S}aDVCRczoYp zVK35o<8JU14o+IZ--;JL21`$y-;OKV`vfZhbjeg(W ztQ~Zd*R=@Vo-Yq-Y8zfNAxa10lkU&w&}29+BuixC3F2h=2ECB?M2I6^}-dPPbgU zRM#9Z*UbgP&^eu&1JrP`<}-T8*^pJ9iRD?OcQsFb-6j_g{1O ze9--al%r+gzwVA!nk%@1I!g0^ZZSqHmoqz`(2=%Ylo!{I0^p=KSdS|EDioUX7ra5i ze8`2aLS>Bxg)f4nbE^93PS7T87UvWBZpu;Y)q3aUqBa~kPyJTk2JfAk$?GcguDmRL zu=#yz#PMu>FWu?iP0D=Wufo_BN2A0ZYPSa^M3o6qf>N@dz_c%(UYfB-89)e&A(7v{f8Y=*GV)DJv`a~;WZPMv4D*8NKWB%( zydRFj^o}A35bre04DYT}eSaB{Qn4^!Q7a@Se=F9$+S&L^)DW!fry|0H`AQ@lM(u$) ziz5sZ)z;(TV={bzB!1-EYd-q-s7`l(*e00jq{%Att>TlUWjXw4q_BFV1R6Awp!Kqj z1d)3D$#q@%O0AfNPIq-R$?$o{_Yd>B*6Hy>y>e~-H{og>aM)V`gdr=&Y3S>R!-+Y< z$2w#q`PPW27^46%6xjVL`I`d90I9?s@2d!VQjV_-PyrX0?f3hd0@nATKjlFdEu&It zlMplNj(oHRa&V3PDE7)*94hhAG9#+B;Y`PQ-y@~p@mgKg;;%*FLr{E08H)j29krgE zoa9RTS#A!?p>*hKz2icwq8Wkf(|R807;Ho`G2WC=5JZZF#ndNbYk3!R5XBC_-M=ZN zUx~p*MOmtJH)29Ax(~pvxVI+D&-BU)Qqg%sMB!!7V;2GUO^w-`Pb;|d)z)#|ORosS z)%fLXCJKx%&-NTw?)<5H6j^f4^ng}gSJ-Q~=lfz{qv%3{_5lRKT1XzrA;OueG!IMR zvQ6A^o(dpZA9`;)|6+@2Rx8DZp(uZB0@#fzD68fTWW3jn@BZPCz#fsGHb@;dX;iDv z@N|5&zq0aIBSQ>vM>^`kR>-p&$6NiTaZiC}D}&TI6=Q@EL^j9?fY0c5t$k!Sp)O5G1tevUjYjIf?Y)A{C$ z{E}^q)n~V1p@EFW_)Rp(`0E!L{q;S}`fOpu1UL5ya2^Fbj z2d{ze+M^!XZ^xC|6HA^Oe2t(vUZ~K8I}=4F(hba~B<1LDVAZ5G_94 zxr^8WR4@;bf#2#Ydi34wcajin7jVFx>hUjgb~AT_nsG-F=eASM6*gZosoRSf|`f}kEgk##Pd}Sel9^&Lu`_l zI?`9+!lt0iy96yJt$Ii>WEr8gniS}}b8@Zl0bhX+tN4jt?Lf)1iZ71Oe>A!ePF0vj z&{Tu80w60e^m^yL^@!gr z;UzH6tObwV$jJRxvrpC_JmMS0^eCb^g6bChXPeJ|hMhKoM34fc9FcYYqN8AtV~A3; z1Y$5c&JUJL8AAlR5zI|E2-q|g1>?avCYqj;NSpDtXciQ~bQZJ5@_xZkZ;@V86WWv= zpYAO<-h4RQo;GFq7FwakXN^J}BwC1zs_R3yp9pb!Wq=>P1=Ps1G#wyE6_fTiKSW?I z38TSOE{lVoo&GPs5G@Wnk_y1+D1aYQb0)h{zktqr-C$NZjf&6iv#yE{CafUz7VXHh zomoqk1O(()pa?gRYk88}n|0VFElR%qDs`MWg^9;}^%#3y2$Hn+M zAK}0gmjGrVjAY`H$P$Nq)>$e@Q`q^@G|A9S?th-WQX0$^~LlW7)`sa@1_eW}xwi5+Q|6=_LWPGajUKB!oqhoBaD|8^j*0bst59JgwT4%!(c;B#8di9(3olQwVBiFmh3Qy+Zao>+^UV#Kk!;@v5+1L9RfJpZjDA!h&z)dUjpK7&O9tfrV$flt zAcmO7A^nfa2lRsS=EG2(2A8~r%j(5bM5ru0jfr*C~LP>vTOF* zOv57qkEw)Z5N}foK~)u?~`Pq9c+F+YL`$shdIOFD4BD1@&|c#DLx^@8k>yTzV;%1;EL4N{!v_b7lsGH~ST9@oRri|#Q~!sj%A)r8NjQ)y=ltqgni+ZkF@6jH zSC?wGQUwK!Gm1f~EgR&(Sq)_bID0e>^qp}aSg~?1E66A$iH^)j3|D9D(Dj3wIsoYJ z4KtnBJfJc+f4_aQNI7s$>dcmC;Fa92|F`l35M_hJE7zmH|NW-(|cmR+9!VPquEl zB!Ad+?xBMCU@dR~-5t5)B#7NSE2+Ym@RTmn(B^eZo{|PlnR09oKD#YA! ztVShrsTTb)(|?Apu^A6#n1tW0;4gV>4`XSyn)ko5Z{x}{YWV5-`VlJrJAi;=+FkWf z--?bH(%FC`cqH}*Uefkm6$w+p-ckk`!PEPhn+5Znopto;0u$vwz7MR2gGL9PO*P&BCDs~3N1-F5xS=_JrH)&|qo&x(P_ z;gL5d@)-+CDGvN6n?SR)Br#U-VkK_vCARQ>lUoG+rGR?*5> z8U4{$>Lh(NH9YsukBS&S0i@wo&Q&s$kP(&7iIa>{B~=nDTpmo!>UU zp#reCNQkn0?X()DXLAU|gft+sUj48c&yOHxH46Mk^!A0IJ6s?HSRkm*bWM~Q%<6i@ z|6KU+b37jmrKu>dJ`O&EE2@#;boBmjx9P z6;#N`cKB$=7&YvEMs@;GX-|g~euSQC!~1w$GRsMp+B`Wp5y2_ousk0#Uf9TaXym7= zMPfhVUpd>`t{Ud<%S3R@B?_nWedD8R*WtAHO|7y`9zf)oZubT?66+7576)75UAZH9 zB%c;Y$;D_=C3)*}xEvOTs6>d0wC6&<=5i{~tt|IHor+B9C^CCx;fs~nO~X$d?BC*b zPGrdaRx)XX1EYc;p@zH;r1@0sat$QpY3^^JqUP%h09i(2T>2p-h!p^MtfOBewXw8W zF(E{O5m|Xaks2JKnhS03teDm~t?u1(F z3WPZsPir#a#b%NI)Kl(sXt1>!pqvPS4u9zNT7~94Y%! zL7nGXOu5n#>-e>K)iZ4JF5Fb|V40u2`b`H|xC zR(_9L9|6x@PLr&5{a8c`R=Q|+BwOO(?kfS%c%_E|UC2Da6v$8M9y35j=g))F0;v1a zWIzHbh!QuM-@RxwD)B?Sdh1FkZ!)^fBo>+ARJFqo{z)5<^@DMeh5Z^cIgV3p%h*mf zzcEg=e9=7sWg$YbPvrNt>nsSR%0nxlBt1)0Y=XlSAgO_qfR12~R9mZ)L^CF`{^Er8 zQ2_72A{7o6%|`3dc0Aktamsyog9tiwzy6*Ha>X~fgbq?W4%3z9W-}@h3Tf>KR;8sx zJ!#u9Ss?W>l4}3EYL&ZdHu$SZWV1|LxQs*5h zF)j)m9tPqV>oa^L!p3On`>j$E6Sy3I<52Q_dHlR5Y&Tayb zO*jQ&K|0G`Tb3jdtIg=k?}yUyEiXLxbaVd49OXjdm!d zn*+2deSm!YK4GFrr(d6Yg}t@d*`My04;@-hpG03p-1k!5w9iTR5xP3e7QnL#GJk$U zJBW(VN&Ix3W2U`yItZ>W2A}=nIlkxB#P$L&LV=0FpFV-~tzRL!3$qJARsSG*AWN5X z{j)QyO(U|UH+bpmn`KJ1k~i^J;_y2`K+NuL6s?aM7Cchqa9R{aFy#s$;gim0e_S?( z@Bb_2a8oR6)T8s!4e<<%^pE#TaI`<(lSV@jey7lq?jBRpytj=r{BH~ZSQ!8 zH~9JGJ^QqusfW}_$b4?Uq7C>wVwy=ft&9?uUt^N2sbQK^JT-?ns428|9}Z%chmF4A>1@k_{b35CaY{sxGFchRx%I!0U*~5}oA$c%Ikw`9VIQ54U^> zF!vL0f9qdx(Z@ z8EO9+QIM!R46M=pUFf^M=Z*U}=YH9FQ=rAJMexk;&proy!F4r3yGuB<4m$*t79e{2 z1|pE@@%A*wAJMyj48i!nrZkDdnSuaE7@_+V9}>@EjbkoYXf-d-w-lU2FJGgDK*Dds zu@7b2m25V=n?P&l=$Y$=W*%ubLKqOBF$BW<;qYJ1P+{^)r`9fIA?t7J17W+H?is!W$bZ-D8QJdKUB;jVdHEwIA7kI*sR1>*biVgk2^0eNOGFypJq?Q?Bx8Rofu+1j3+y zC8~(c{~8>Sj{&|-AIabs3Jn5ER;tfl%Vcd02*tH7631}Krmr(S_OrFq38w2+AP3nN zlfJ2Gsb-u(M3dSp`Z4xcp`a8F%T$2BE(z1!#^fx3`1VgXnHTl(y#Ex8g%F0+D8|gp!VO0{7P>y1qilr z990m|)Y5il>#nrlyY$gpfSI9xR~X0?S!ljkOY=94Uw+mAnn&@JpdPA`YF^@_LC_ni zMWlKwx?j*6mQk%L2;X%88n6~$;vps9R!Nm2kj)NNx!gtDfwI$obGG1krXsvy#_?jn zsz)REPf7XzY7A8R0wq`p6flV~{#4|kYalZXkt^5)gGPq%?YZd@=ub`C#?Kys0@%Cp z0^O2kA1F%6gwMS`vy8O*`2gXE9FbBqUIh-E5G3e+k+;;8eaK)4h&hkon)i4{Ofo}}LZ{_iLT~^+zl9|3cw2UIW%L>H`>s4sb~PRA6pe+i_a%PcNwMzJ#{(%H zKtr|%89uvwB9+&m{byQgp)7PV@kc<;iUnTDh!)uof2s+&I@{xk61lA}eXXCNnWuAm zQr>pkr~^i;3=0&JnDcEX%Mec2^9l$9_XbR(ge+J-Z}Skk5F~wDki4;X%Rv%BKSoT| zFHvOiVu18%cA;BilLBUy=IG=_AVGA9M%>}A(NkHx^Tn6g10c6rUx|_pf5Bb_?ZZJZ zVs=d;$CeljL@jNI?zf4}{10H1_8yl#|#dQFWbEjQTUq%^jdb{Wyc~1{DBq*>o zR~OW})r1!=AjV34sDnSG$>5HO>wbQcOjgpe}UP??f{}BFrKP^C+TuAgRWhSSo>KLaB@Dr2NvRM&!K}J z%84Q~g1IM);>VTt!o3!TNtBw5CN+5UylQSR)OZxH2 zU&%M*PuR)|qW0|R2b7=uP@mUN+0xPijbS_WbIeEl6P$KapDMpO89ank<^w;$$dKuZ z;Ed)aumS64laW2t?t{j!8G-&{ZJ1;&)4VKWcZJI%ff${V0aF}QGfLR?ZeO41_q(#j zXgw!pmsR6{mH62>ewZr+J-06?lxR(gy4q#>DQ@4B0gg)nK>uTU)EBhQpXc2H*D@lG zyVwEe5=VQ#Z}<4P{C;-4OAH(E19J!jK08qX*QTyuUT#eT`xPS%+?Ln*7ECJG8CN=J z420t@0SZ8xQISQ>M)e7dOmTqGsae~WYQ(e|8x<^LxApq4-{R)-#2@Hy56$p3(1Jwy zA)oh{M`Oov7zPlsS29qwh)c=jKakq0wl-gZez z;U^znZk6*KvZ*8@WH8z3L9N}Ev*)e=cI4x0cev&eila*yfwFYk1o(^LGjEt#HEVhy zR~rb;qyD%Vcr;fKkP}k?xt%(ctQ~x)Cx+4b?{MK+flgJvX5{Mc2tZj7j`r$lwBpIO zBany?D)ic~(cIJ5YLVuv6#Z%S{VD;MfM%eF{_joHw-)@cV{1t>~Lf%9aHq zm`*J9UWt*x4OQ6i-~W6MZ^$`10HTW&ty7cMLpfq~ORR3{56rfnL|Y>Uw}rfr8^wMd z(o?Hr%4qeuvXWhZX0P?CtVIR1D+U%nzl`u70P~XIXdOV~MhQ^CA2N2u@7e**9%%MH z@?A}SSHjYM24u$O<1qzm8L@zcFHb6=(YTCwHt&K>tu=YP^Yr2pDoJ~!KSa|bX&m+) zfuSu#f3UJJm|gR6)`EIODPC{{Kd#+Z#N=amu6UY>m}tI{?n!iyOc@XcDt>uR2^132 z-@I)iWJ#InEx7~@Yz&`qYeOy^RDaJVw+)kcVbnr@h-2$TegyM2zVNDI!f=5i_cFsO zeb;5n=(;gJiuSntC&|$9%-dtyt+*mKFwIwmmzo|%e_~tSV!>R$7#ymwlJbLmLcWNgewG_ybT zRj8@J4`@I_@%W2%5ALe1%rgqbD16S%??EvEs4gFfhf)qYC-cv58`w#P9*bP`s)YMS z=hC3RCW;4A=oEl^B3=y3w}2Ri=cwFU1%aH#HI0>F+V%pqM6YfLu+t_SLxj~HAgo4= zHiIJoVaIV5*?lDNBF4T2A72(gdhF$+VIfD4omV)nI}KFZ=+7?V(h@ zG@z+}Djp@?9AjDi7g@Q;mvpf}>Rw2%D6X`N9=4BP0f3gL*Wv&niFp6Ye#5ZcwbC26 zvm*Ox5drHghSG@7hdOi)R6nVk0lP_&Avus6LJnhetAB-&-);HS z^B50}HVDYCdaKVEF>zZ8=ykb1>wV#S{>tH7Dwl1EVe#(xU!Cf~W#U98HS&!T=4ED| zIH0{*R4($1#HMz_-1Nb7V)7+D3$QUZ7DzYk|AETJe`WZ1YNw=IuZ?(vTvBG$%HYzZ( zNLLqTjNP6vcMiZ--Uo@R>0y5h|KnV8YC`;ShbS55=E)DmIo*=ar!aQ_y5UZ(hCh14DcdQ}kt|j?c94qQx%y4R1|aPix9i zRPwfe&$iv9seY=+TEVSm^m=sliaMH6!expM1loj$hWehYY(f~0e z+P%Y$Q&NBxIm@rv^C>vDB}$?gd}1RObXp zO7@6pT;0`r>4=BZ`pPM9@uJnXgNaW5_KJQAG5lDw#ohYhxo{#-@b+-IJL)V-!Cb~V zdAIp!sHBk!Ox(NRuapPe6klv=x229~L~LY>%WpDDWEBmh({S3pb?{XbI8eFcO4X+Si*5_)Rpo#(Ap z>APOMCnEbRi6()gfs9@>=k@_@`2$0z&nT@4GUDc>A)%r!`^_LPq=D{lNKpi5el_C! zPS3}hV0fshSO#vRQqnlYF;+NJjqb%<#ad-b@9-bf%gb8hJ$z^z}cD(rwi27p^} zca&I3D`x)|Ww8#`@&g^6S*^SWh60l%JH*W8)DI8R4~pH(8RNv@h!}o+#1`6 z8F&l2?#rG4W&Ig~xpkiKa5-S{@M{7C;sf?|Ki04$ni9AY{2AX{C5Z4=WFM);mp5)Q zy92;x!N@WgZJ)XilaHh0>$-BhCRkPiq=j;ZD)o^T z_+G}3h-Wkpp}{PZ&;+`c9r{`Vq`&_!fTiaxFKSd*oN3ut`{RAa6O2hPA!2Pj^fdA} zFD2swuhm!69_lC9&DNI2EI3S2#}U`WOA}JJH496APUnAbGS}kcNn$WZ-`?kX9cFm_ z1+-YXsSm5?$W}gvOJ=r%JiOC)fY1>wZN8USmo*>Cs{=*smuDnd$ZK$jR zN<|XR=e_NtI!p|f=Fvmc)JTWlL)zuBm2bI!=8PM z;ETUa^W0{dJj)9;ixUGP-&^7F0(D(8(sOU#UO=tM!=3~2S1H>S-O^2_)xw;B*+_8U zb3S%J{PEE8y?A(_%0^`C^?4$T;jZUXZ|-4%J;C3}?|hf^-F!Iz93eLVwE75PSUqs=V_sWe4 zexxPG9f4Kr3JAm+kmb2Rg{=Ab=033rm{46MyttffbGW@;7XeB%@F*QmE0-~p;qh}r zzmso@f$?4Y4_XKTx*~@>glR)QC)q;I<4@JI3JN|GK5Mbt$|HG4gOE}${lm5Ool*Q9 zMoGKkwa5X8rh{uc)o8{&OC3N@>oHjZ)5EgXiIBJS&qhHNz!lyCa{ge;qvMZSL4X#` z{F<0~t@>df{DlEqo;6^yO&2?k0k&q!jMHra0exprKiB_1TzzF&l-;+tjDrFyk^+j9 z)Bs8=2Bm;>4;_kxgmgD3N=b(_(%s#t)R3ZxAP7o#cfD(#bN+GO?_At5``&Agn$gUCLPk2?Cq4mOqtktbiUfb z&FG1Q9{zB6p}_Ikh(0rHXNi={;KO^_rhx%ztk<#=YjEop8J`U1c^PYJOiwy_zeui|aKlH*URh<_lib8q#--Vd&;j1Z6g&5{nmR~ueUybZxxQRv?GM&ULFHA+ zu*}j)ma5Z<#L3o^-`$I=x^d5vFHrfW_*crV;s=zPI;gEa7%W*G-`$;)6!8kGv|avt zex8a}*wa0v5~PFr!1l~ad5eVOA@z%Po<1rN(i8urGFXi!2nW3gOkSBg6da~_#H(Xb zD3u@9jEQlBwz07qK2_ky zOj$p`^6{_F{dWBIYSyXwNcWS;gZ(ZAPXkpeGI2{O%<`nz!c_;tfU7=Od}c1i?Kkzo zzW<6n^qB9jQ4`@!VNk5$PRG*C&5hef-<806d`;z6mce>4oIs_bdZtYOc# zQjB7j$2qsdsVn3l*JCy$5J+0VQ|t+7#qlcagu~lQ!yu+&p+S;a%Nq~%VWy%~T;MqPh7#0ETusz)$eb+=*de^;2Z9TYJWF zK56M^X}Tut`;M=E@pH#=z!n+%HPALnY~o2F;e%QLW8S+*ggcW+o)#qoJ#ReS8NTsG zw3uBSJ__ZZHFyX#ODb!8U>+;Ix5AK%MCFBE>w1yACX0htVqT@Gc+wEym)Iezu@@Qj1#-kGj7~@ z>1zj+=0gI~o7uuAUB{n=k6%wrV=<-XkEi&K22Vwrvk!G027%1yb>Fwf0<1G2Iln`3 zmG*I}HMYp{;HuCFF?u4m(+X*AV)evN^OQpp_)JNJDTx<0rb2}+x3cnTtAD%Z^B2FD z{AOxQj@P;K2dfN*{;cX6sv}m3N4$2x2fI?%P#Y{EfIKW8lCYgBi)pq_c zk_OXnS)Qba2DY6+2>Af%ffji%@q>Bv*aZ(mTp zhovKQ#?zwpPp+9|S^)&gyMeHqg<_MnrzU{}YZ3;JomYVSfRbCVu&Jq5?q>6GlGG|}>RU_tXQQ441%zdP6~9;` z5nV{bnNlo~R53h)BmL(ELe9)G0Q( z!(W^r9@L!3p)AcSM@LU23A}Tn?3)*Os-!r3wuPFOsCGOgH5Qfm75##u@_0H@p$fx| zYNY=7*K%eK)ohL1qcZu3u?cCoc_a8-p@{+L0bJfwg`)y1+?l_jx_Mp`9;%tyllAo1 znj)XFM^4x}6kiA3`zY4oY85Z5*T(M>K|ilvz!Oh7U?za@3B;Rs8QdER7>wUp9{C1N zDQ~EEJ+DC(MC=SeZ!gx{C6{9)jRlcK^6wLLW)@CEUtftSMcC1|F{O4k5|CuXI%aA; z`70-4+>NEzu8K}56*|s#3rb*$dy*s1TNwq?3BDXiedFI?_Tki1fZ|H?$KN4~Kg=pf zQNJ)o901~fe!FVlTHSoIV$~~r@=cg&>}h^$^L`s=kEThI5t+tP^Vv~zFVxmoR36Ow z(~E(4$pc)33^H^hxM}}O3cpY25L11nv(1w4XE_x zP!f`eLzA{P)P#N(+#7q5PGXLGmX}||X8EGV4JM2h1+JSB$yZPv2itB}*g7|je%L&i zK|@|-|2b&4vYl61g4n7-huXFRB8+c<-fhF!+Y^ZSjrWE_r2j0D8bck;1-NG=*`^}jIHBkSdy$V_mi#sgn+^-u9;#m%m_#XO6dV@^9aJrzx?sRU(DkO5V%Y{K6_Z z>TNml&r1Qp!+UuBZ9U6Zi=>{B=+`=+hsgc_Hf{0pTNQPa$f#H+_>)tQD96G_v|7#2 z$ej#-pJ9jV?`a>9hvTB41X4wCHXoO1HhVUn`5=CVU+C!|&c8`ErE%q6(v?d-lX;|` zfzPR;=PRDH+8U~@WWch?0vcqMYgZeWS($+E05SJ)bRLwXhFEb@_dc*8SUX>^pw&4; zX0BJGeC6O%YW5yv?)qLEmga4Z1r9&m#yWOXf|(Mh!Na$X-vhl?!_E)w(+xo0WnqDW z;QTN2^#U|gvYbyO=xP?^%?$jPvRgFg`yUbFR13BAl=jUk|rTt4V{Zy{;re@qU zuZL=hC2aKs$mzTan<i+uOu&1S*iJsvI@a3g8D*84#NX zS7wRTMk`?=RBhz$(2V4?`6sLU-dIjUiCZJ3(wK@ybLq+LjF)62foAODt=#&Q})aKo3wL1$Z-u zWl&#yJ%^f!S1zW{1lvN*cE<;rw_zgIL-@jNM1+c8;|>MZ~M(Yw?jWti&_>>->04hdSt>1$L=bWf>Hv zrg*H1Nq?O!CYr|2RPPW-ySqDOe5`6uiu^P%uF~$G64$)w=Fk-=Y$0WuLtXuZf~ZOZFgC?g6=ZgsSfo zu9{sBh42X^zRyuE7pX1S!V`h#49oK%s6vJm_9U2>wi{b7UHA+GL) zO#frq|5=Cr7ugKtw85aF34Z^H#s3A_k2-9ALLcwtJK>Ne)IFgQXkX-0i;d&JN_n&k zZFSk^m=HcXc%7k2O6i$75B{Y%8hajHrGK)h-m8ChI2`o=D^*FL;hH%w54U29&q@=F zb;~Jy9sg&tfhVb$xliQ*tMV)D6IUWpcs(q~WVZyo=`A<0)FBq?s4jtWGYjuyD^$kg z=?_XCg=mtn_npf+`5nqR<>87*qIMbo~W6}KJLU}1{}B}0a(?7gN_)nH@OraMeRaXLV>T2()1#B;xkF{_@Ooqm_-5k zqR!~!5oaPrt^!cSV>?V#}joFOzM3cuZ z0=M)VhFjScz7ZKK*##ve9#TDtfY_Z0f%nqD=RZK5o&I zU;XNrF$mP2FTENrN?HI-zx-Y*7bHVXcd*XvgLUL|Ax|PE)~#jD>&&fLsQQ+^6t0^X z?3rWuoqr!=O3Ni6#=t!!e2@Xwh}M*p75E@(7Ngc$*oj3&c=LU{eQi*zv7{&)<=MXs zJduR*goeM?HsP|C<7U9PndW0+7tE_x(sWEo6c2?mNxl)3MgA*H;d5fu#6h1^!OoLS z@%ZmbvX?-!mqU#+!w{=k*;Gy$fP3MMeJcj0U)y8X>4JVgbDO z2t%~mmqixg11aCyZE$+@V$FNe@MBeB=S_BP!C}!Bmef5QTnCkSN){-}Qt>)7M-yjF z2cc*Cp;6sYv1snwuvStxk%k-DAQVK{Kyu6nd{SoBrpHB>$$iX}f-4QU!EloJ;Le<5 z9ICUT5ac^|%kpR*Wp;E*kOlC+j92~5Ul(iavAu@v7}?oix$uEKwO0n&0mK|trb$@s z_lIi@k)^0ZTU~691sE!-7u@pFIs>CuQA#Np!6u}vBEo&xu|UapD;28?l=LYMp60oh zr$6=4>+i>^YO9IgLc-{-?!&Xwi8GmiL6?)A;RM=~`KQqf%F)I6MGt0pubW2Skicb< z5}BC5mgcnt29&z^^KJIPmOh1Y**~g!>b?YJQLhRqB{%cY)l{wZzf&zi@Yn=wqE zt!(9^>ha{b{lNY_RhxP3m+>6}y?!d-+JGD+{_JGp?8>#S8ZYP>uSY9fL&fm)=LJuj zbM)Pxqu$!{I@|k^J(UqDkEuib{R*i;!edSKih7g^hnXLKOdEIXzabhRI1&w86i z;-6@+{8ASJ4IFXR@*5Ty^)VmvwS73q7Pz(liQl?@weYfp|)Kza#%4k0;pJmt%cF-PfyUeEt z7?OcK3C<1@%?!!=F_)g^{v!c}F?F`VL50+=Z22EFmoFedgf0cS{i$%G5F3G{mOqvo z|0vo)>F#Fn*j!_j@bK79f6NMlx(!1p7o6Ce-W8fwEB3bgU~ z2&VbuSF>ibfVy5QqD=F7G_8RPN*BOpbZ*6CKgvs}4zpr45B7*uO&8k{Y|03SRt4*U zeQW4F%dwYd9~LF%677nr83ytv_ogop5#gNpFC9d7E=pi*s1ci;)LQwo2T|B^i{%Te z?%!sY-iqo!QdVCe4fA{5ln+XX%A{!90uzA*@(J11^T7GMM;jgvdP&ber^I{t@yWyx z2zGu^YqHL6_R+i*8hFczPbSBGip86!=VGMDl9WVQr>Bd^d(Mvg&t$b#57+=$jo#EO z)_bE^Da}^G#BuvQAIBZ3@E@TW?nULqar*4&AV!Kd&Pe@;dJ`8?;v(6) zS5+_m6h&(Ww(CvNDR7B)l6tIfVt~F&8n-%fU=b*L(;az+Gw%1K2%kl| z)Mgi+vq9NvF)#HDYWA2XsBVZyusux13Tf_zcfSqVq?>>c6*ZTxtVc$4io`f4^4O-< z>rYJdyWa^Q$<|!WjQ?`B5$ctwEFpS-CgKg$_XDQXeNoPabzlA5rgSWj<<%qq2G5z7 z8kd4|KPpR!o{N?3Qpm?yqNj(mRu>np*oy)9$KZ!t1XgKjn)ZU9zd8iqQf zj&k*^e(;YQ?Iva$W;gb^p}L*r*3b7h=k%x~s;nLfpKS@Z8c^*uq8HzoHx5k&8@;A= zCM8C#?51fkf6r`kb(U`xG9HBGYXrEOfzOxF*vW3U zm@4`U?)}kUb#TXnJga1p^+x$M$J)jF(apT-vymcS)q;&2xqy;i6J&Jzx@c2}zEa4H zv8QM4%8%l?tvvc(M@(ss%z|lzQ7b&17HsJi=ti&*%tGTRxxb9n>TAh$s#T08P}|E0 zeGcT%4$sk5*L8^2mo@%0QXnA&kSsp?nwHT}U<88_EjAux4Yb>`4@p-jB+Da1OT*42 zfFbMg#l1wbn%ZJK6p~$DT}c?Y0{4;>=bM&z0Q}dyk>ZhY5St$Xjdn{v$Q6Z z-#HSIrNfLUOVp~c4zI4G^VkdOxdKkI?w41hyUgU)SPmPp!`vreX?`sbg1(3s2DRHg zy*ZT-zLRTYlE+TV-d<$cpTcg$Y~Po7fAxje(pPEL*zUkm{ebEz@$d3E9YYDGxch(x z%c9m$Ke07suO~)j@vF3>_+Rnm-QsV7)oO3ci2JF>o8>)@M~9n?Ilr0ZEtOX#f3i@w zF3nFW9RKiGDff6?YZUP?O1|`jJ6`$KUIP%}%1vioUg;5`#r3NX>JiIwMKL$MjyLY> z7o!dPi|a=ZJKsx(wqT;!Pu6lhA2xW~8tJ)aSKQpuDH{|@Ka|6EX`e{enafC;@_(nP zJ-3ovabcpHi1w9vfSXyyd_gayIZAl{>Z5fLY1#;V3%2~=Tm!3J{+VPfSF5s`OZq#| zP+F67A3a(&lXMIMoCxJmvbxPL+Gshhce`pK-R!Gg%;g1!dU}eyN43?D6E=98eF+>R zmWq}&=KTa~?^ua5PmMRS{>7gWoM3A%h}~tMGV%O~SaojFJEfKH@2K^5N;89bq$Q|W zakkBDJ>{v~stbGmj6T_hLgVB+{E4&aX7+^;Y~TOOynisgr(7AerS_w|=*jF)P_0Od zG?QCCMr$`7IbTym4Y@9me-laoKuZqQjSp@58O%v~k?XoU223+&%-=PL5aB$TyLxH` zc5b!%-;PmC%^f;X=yPc_jy@v6+(kGOuVd< zW!iIIhq$vghSaryQ%4te#VUME2Wz>Rl|zMw9NWAHZ>Ckml0RbCh$K$J%@fm}uv{rl zmMSB<{Ro%o8`Ew>Pp*Rk5`kt)HBs=H22s^-aE!=-HhB!SRX=fZr%hLq)_6&4M*W{) zHdBP{)E0C4@sdr#meL!yY`R59<;(*e?wGFpr+j}>jMpQXYGsYoQM!!~;iFKKy|@>p zzE|2TXOfj)rWKB=U`$YWHBy%ONgMO%m&{q%z&%c1r%w(9lhHjYIHG0I)8_0CuO;)u z4HDu~NwI_q9ln&-j7z((G*C3{=n`0VR5ST2Rg)S=i6A85hM}lP{uc$IjSS&#K_g65 z88o{_Hb#6wh6H&t;`Lw+B0AQluO_WFn?rE34aCS+@D_@>VeI(mzb-10tdr@SQGG9; zm)mBp5jgpC)l2f|@{2(#%%2P;CfOG466yV-MN0g8KAmyOEJvRf{n`@#D14-L5C7_E z6wR$}^MKU!U^X)n1ooLHN}FmIRwy#k{38|?du9`3rv{p>1}thC%y*u|^4!XW0*ndLZa80+<0-d09ABxbt}PNBA zpF~82g7nS_pN)K@Yv1!wE%(a~upt7};rnnk9m$4R$wK{n%CoOOPKY(aEF)uRn%1x*!k@qFOR)!XMI zW`>B5Wy5127i2zV(>IDrJgY#mX*0T*a_4gZ!#7N#GPAEJ)@a_FJ>Qp`7^}tB>fY@U z)6mKm{9 zrj^mIW(a{4gAv@?tI?0a;h`ssG*>GeTP3Lt?<{z5VD-3Y=WU_83vr$iO<~S4k53=t z;jhBxB(Pq|X^ZVV+*+7s-8bc&WJKCBruJOGrU(>W#Yk^VK(pU|DRn{qNP9+e$m%}0 z`&Bt{j1o3Da8D98f6t}kO~^aEoI&$v{$P8nMkVNqI`ae(P4>!T+YwBWavjF#FkWX4 zv~=csHW)|1T2M2Q#aC(E=*PPoVzYU4vvoRa1J#OO?--Ge$%;Po9ez2n#V_x+WY5m} zAoe}u#I4v;MNgxdSF*9cMr8KTF?W=m9(-G~XK#(yRVY$7o`FZ!ygQz!Oy$8ccG=*L z@dCOIMe&4A27xgxAZOhRhRRf~)kL9rm(!{Zqs{+AZcvi|_bgc#o9<_RiCi?52Wj|m zvMGDi^%CB$z#erZ<;AqDkdl$&C! z7N1H~zJLEsr?Kac#Bb-zG~)G0u{HIz> zgn^s4*grfKk9c$~9wpOcRYF);;XFI*xXgbmIq~Uev|P1TfqMr=<@)7ov%uPO4i?pO zJYPCs{b%;XpKIvC|0iH8v3pOH%R5jld7I-F5gsYdNpECk@V)y+37K^6TKDBoh2G`% z)>dVvpeZ->9qeZI}fR$-uH+t8|t?qUUK+2jR$??}QTBhGMYG!Qi#b7esln45iGUXzd!$dhUe)obGa7|G#EK?QQXP16v_BsF84Y}@75`e~Eq_W`Iy zaI%Rr6KS?-uzPFa_b_&0G|=QPGS|a|?G(#)rW}S}&ZuA-JX+_W#ABVIHEiW)7booq|;_2zfc@(aj zJu?4M5NCT(Ijm=n#nsOm)M{sV;{uWh%-ZFf)J4NHeVK0%FeOX9SHds{n2;o=B~mOl zeZSc%0i!G2ACFpjdme@tyfp0JNe zT-W6hZ-8EKn@DS+FN2*J=Z@66>L<@l4Mz75pMB=~O$>SNkgnRNQRvL*UkQYB3RBfw z{vIe_-?)MSEsCipV22kKW*oe*F_BrjByri8;~PFA8u*<^6$0Dbz&RODu~bU0MZoOH6u<-%cDm)Nj*Y-IXE-Iss&Fk6@e z%uQ9E{Sdlv>6*+)tO8n`eFjBgBtXA(?f^x>Mp7*MvynPyclEj)Pw3jT&9ob;{|!}|~jq|8iYv_o1UE!EU6Lv8{(LCo|w zY6@?WyMcCoMtM>`#W^?0Jyw}X%34{?tFUb(N_>WaQJo&^IlhP`(+)isoi3tie9}CzFGDRLX>pB&&{d(LahWuuMO_!EeRn08ax#aVh z1W%|Kl*cZC+EVmuy1EYCW}gpUURcYGHq4x`!_@VtLI|KJmf*P%#I)Q^tJzAGpI4II zc$#yMSZTK{b$m3*muw$9v<&fPuPJCU|Jtr^~!TkZ3ET)NK`8$<2aehYs0_a(5k7EUTl zTGjCzo)+CGo~I%ApjpI8wHcBZxt4w?h+oH!qOIMGxHW{0#JV&Kl$4yJw}aFJCbUpT ze7FMx?>guh>OUt|FDT=CK$H~zY-1O*ik_tbHk#hJLA|a*h3AHRNKaxZV(t76%7y<3 zR65o9tP4foLd6sbK2mzkJ)GbMwUqk$T`G@oQUY8;vd6*##2-V;HiijR!*?tPs>ND| z$W|z@+W|5~U5*40Q-K1xLi>6$_K!fIqJ}|{JRng#td`crgF6@Le2}a%*f?_abj?e; zb`J(Z9_PRl1ZijWIiQww~Ba zd)C>J>qX}OO;K%1J1jrYF$x>Qn;+MUECSkLk5hFyA&_Tq-*2Sr29RGIifqo`psPN4 z6Cq8W5hW_Bq<9VGFB(p3%4J}`ULLqxdEI7bNS%dDMd(lJf<5H2o^(2%G*$?2da)}E z#=T+RANIyMkE!SQ!y9LH&vcMcJitDG8sD$+^|Wxrfm$$luq`~oUrQGrx03I0Qb^tF z^V8ZPwxjqG?0u;=n8YYZly1L)?S{w$+%n1)%$^{x<~LS>SldAvU!P7ssZ{rMg3VYd z&;8G|*X3*(h&nIg6b7;sXRxpj2Fe$bXB&RC8iPPO6|%Kw9t*p#G46H!k!vZTJbC8> zXna!tQjaNQPiH?=|H?mf;F9IG;7%{LR;G3TcdcEvej`T=0r^sUGyX$-V01{WGiX>t zvj?x^M&F5+u8zo=)PTf7$((6({iAp##T<;}CP9UoW98#NVnX<|pAuz=HLv-V z`F9f1u3Tabi{CG!>%Kp2HILlGYD5yS4i)_Do%DoNT<(KV$tLnCmSkrJrl0SX(PNMg zjK7jUFG3v;8hb_A{L{l*Xr;;GH$i0r*0Uej*t|A3(|k;nZi2{O5x$+usFM`3%6q!j z47grVE_sF!@FUTDiR7MCn5A;>wf*KZR9m7gi2rj45z4{eX4us-%nGkR72W)(L-F`| ze`TKq3;72;|4%9hZI46A4j-d-u(r=D$9cG{EKoJgF^I^c;8&+uOUP%{t62;e*cr?f z4G;6qsdd>-cM>mABvP+vazvN1}9*VoIVSm&>}F0=x?_X)hH? zLXe?SAvP=l0Z)B9axS*smN4A#p<`g6BOvib+Tg$SrVC12UOJDAD?W=Ze#k%0yJh@4 zVIgq?2y5C&$jENL^jz76I3ZlCHDFEXe=(woc9wBzcyiZ6kIOj>!9C_~5>N$sx@p9>7&;5%LpZIxUA&lAo|-dV^BJKe)Yp{p2~wI6J5qI zdBovS;L6QI#}NCf7msz#FPLs+XcV5E@i-``pCRj(ACG6KVT) zw<|Hv9gw4S7>DP0{oq^;u3EC}C+H(9RU>|JTF%faUeMS=Z0=?Gg~#I7k36%eB3IoQ zZTrWKx2O0FsB*bes@2?Y{gAf%qIG5W`}0}_u>#3#VsmlH`7Xjs7{i~LoXekM#$gPpui7nIm6R< z>-Z&5=qBh>Wv77zB{mnf`J#mknzZsKAGm9P+xK2$KtsaMFU6PCgi8pNH3G;BZ#d8!m;*eUWX20}(MC#Zx9{pZrM4mVnvlj~ zKdP{Ej$KIO;4AJF4f~0orvh6?-9u)zQ&Mpfg-pHQGKe@}B8s2;M+JzyU2g%qlpFFF z`?CM{XF(pFl0z4LE-HX3bExz*h5tDV-TdpJt0{H<0LJPGwP4k`^u6T{d5Z{zmtA}w>o!& z|D;(Io}&o-3NspmnqlV$uheDErvaW-W`wq^?23^ukPE@=0p(@`=#V*g=Iv&rrTc2d4v*=Z)_ zjU1F~Nq$rL_flrP*^gLnZ_c9c`tBQkEG?10_9wr=2*^nUW4`l?`HOLJ);wfMCmq~txqbcMf=m?aAJg+b`e9FhUh5tpTe|eY zWAPxsUdeJV7hEH*wv28xvT1ZN4|!=`n>z!Eh`zE~Dsnwf496_urJA_d8@Kd6Ql(PB zbK_%5c01)BfDVEc9d`O@)SL>f_LFq{Chz5)P7YgK@m~+{KUg3`acCbfTz?abs zPA@PgCTc$u0sivm{W+flBnJgmsV@hs_|p(-6jmg8Ag%IwfTYCN8_$41~X2Ig|+weweol za#;#up}U!b=?#--YYU05OpVb9o28^9CqQmJl7zCjM;fhO-Ycf^i+B|I#4Dc;qy7as)8R%6~4U;jGIb z$=*hb;0r$a)1xLy7kF+{;l&JX#B!dBD()kC99sOJYwTO7K}|QTF>jQ7 z(e=*C-(_(&7L8nL@V<;TT|flCr77C;ZtQ)9*k$CXy7GxP>hD#Y>+Pr3#_Wtl;?Mdl z%v1iBo~^3L8V#ZHNRq?66_Cqu=F8cB@1A^^0XI8Z`&mi<=*@R@RClb6JfOS&``b*M z@EUua=h#w%2m+V*CjcYZNciMm1(FNCf@@?XbU0i1KO;+`+0YS?eG^}7Ey9=aoI1?M z@SbfDHdXP9^s-(KI(uvpRe1%0<2HNU?N2F-P>*loy72M(Yci(l>Bha^>R(2AG?!}S99gd-~XYTmoNoSwWORWjh~kDPLrtg6f`T!Kune@x07FQgJmRBIym>m z;}o2z(I63HUv?51oO|&LMDljG$tC)?6%mgMJev{CV~^nKIEa#MQy9Bs)N{JcV;}a%&tk zYQN2x2p?(w^EylMK%b!pwK!mhp{9X79kIpc9)DAiCZ#aU3XxU9{b=7Pr4;ys+J@DF~ zFcUlWe6h`vmmqp63(YubvYYG6C4Zrs*f$m-e0I=36K9efkk1*sQIg#ic@9OpqsH=>lG3)$!8P&y-v=q8vONcBDTcW^=N;LVL0<<)wc8k!NxwEQNR8LipNn zm=owLpE{D^KhNh2ej+fxY`cs9^R2`K^`x>1b~7Rn&;o}q#y~8^|4Iyk9Swn&m3mPN zsh*jjURab7+(ozUkJZ?ulS)yzy#6Rth5VZHM~zU*A%c!72|S1_Ae;$uV-Mbhsk5!I z?-JuV1kA(eBa(5x$*Po>3je;DbB_v3yb&PY3xR{&Za)lsQ-Z$UPET#`c)uR`?AcHK z)o+c9QRB&_J9H!i6T?7_cEb=DvB*4@m9Lr`@x8I@_nXFpk>J4h-Y$4z7qHhK5&G>i zm&D_7xLs5InTu1JZ@Gqi>+v(ZFGtJtxRlC1N|N5l9%k>C-+$U(6m9SZds=*M)qej4=@*92JVaP)=QEP-+v}2&(?x4dDRYb>h!J}0 z!)?=6F|G`Vma_eP<(}cwaH1;d&jN2=_uVmx^=?w&jwY{JHtYTISsJb^F}o zv?>_QR)d}zpQtpCrAxx5yiUWB2P(p$Hy_S^AAut#O(9DIt2mY)k-Im}XgAvvPQoND zU^F5iVDtA4Hjp)MArD8u>xIz?}($UJ*;L%iqXsNuA(luvT&c54{BiAU`%T4;#%rbbS6g3(_ zfwNNctu5~bmYI2qABw)(?JItcRKQ>VPmIOdSEr@VcJPJ&L~cv{d>eZ=ity&cFHPZ@ zrYs_#1y&?A>G2tvQ`b}qw1%`C>bULlaGh)zRL4-A#I+Ev9STXW&Jo*J%>)k^!RGUErPZGlkoW^A3t&NC*# zXvsgNi_bJm@FsbKRJ|=*#bg*bk$WePSa3)>34I{C;S#eD{rQWI)%D$OR;MO(SUk!blMW;^5!_QLQTpLAmI_Ok{Pwj3fotLS{N%SBcF9!5v@K z=`iC^`#`UOm9!R)>d%aY&75Bz@9FMV(b|vGCc)`gZtN{3!bYm_SWmWS#A;l7jQDv< z#J)r2TQ#CI^u*s!m)R$g-g|}U!}gnJ2DQMg-A{KbVu$rL{50%vjv8lNoOy)2CUJ?8 zobWP^$7~%qNeAHouHfw}2LTW5_fzUA2OsfU{eE=o6?xSlNZ~LLLG*p9OP++R>h_-9 zhnFRL_v(xPP`f_oyz7S~;^O?_>E7@pfLTK_1S#2a8JpC1P1gDGo#ta(fHdDz1^S6x zf)AR~(D5q=;!sGuxmhPc+;?;u0oQ(@VtNbCLuAC}xBL{X!2+_kw(f#HN1y1`jfgHO zU*|PkwQnneeWj~DmSge6L9+W8kSNVAY{Q{2)O)i1;@H|o`9vh;%_~=NmD<(pVXAcP z0rHQ}ske!Z&w_7RZ~Mc7mCTHgsW^p4JG?k8WB3OR@d_J;Hz z;%gAF^$Js;p?UZLax3I=?BTQ{+q09s?7~xf^=$|S>4Jy{)ykbE&03~gH8&ML%(Rmy&b zxaPi9;}qE0A_HJ=*$cal48TVG8NwNfc`{g)7WU+>+v87MnWx3x{^B!)oqZD$$1^im zWzoJvD_~&BU;HL06_(e>WxH%+BYf%JD5xAC=8BlEnz+zhMo3z{6$!0t>HYniAoX9b z0}`_uvD=X}>dWZMuW5do1Q#@JTyMvr(Q)jRMbrh!R>4w8%o4FbcaGwnl$fZhl)qM- z*fS77mw{_7Q@L(X0_u;b{19N=nnOXH%XoYw?9alaI3`yc0jJJXe!zlH@T&tNb05B# zDoS_W_=^$fQ!U|ha(i?y=-ejdt%3AAPy}q6ES6@lFNQ1V9M8jNwxqVb{KGk3#-@}y zuU=AKbg~%XeS$y#_AS1C(Umr_%FFbr_4fRhV;Z$W6zEDg;Yb5ZRiUr=THe-g(kc05 zRJS}@*{%6Uewa~I=_nZO=STDZ zd-)cS+up(^wkYR;-gmG-lee7ga>-rjiyqZ1$HyVI7vV|95W zVVS%bj5X&qRm!)3MBO1hXp}c0*Q;WH?fHcU&?GD#*v?=;Q{~P8&Qw-=4^Lq%s8w0_ z-til^RG9op>yX}a>tXFWds8E7r^WAG*muI@-NkJ2>nkqt%u2w`#>5V&gvP`JEYJU- zhrmet|Gx;TZ%sN0Qo&kAk=Rd_)$|rvuW89Ox4=Amt;T;Q!X1#n&C{bb_UNDoQemr} zDG#0G4&f!B^%#+Eaj7!WCY6Th}DK@a5stA0l9L(t( zdvE_UR!kBNT)6^QeJH)@jXZ@fwiQ$sl)7 z|46T-$&wi6O#mB@ZntSbixv!iF1(H^V{K)&-e{w^)DUTpJr<89nYZf|?Ph-;0+qg8t z{a};roQl$3U`Jkp(JWDpZhh4=5;cn81JFV5Fwj6hNGbUY2I(@}8R<+aW}ecOkpF%s z`@ldL!SgOA2K>6o@rWx5-b=LEs6Wgp3qJ}I+~F|EJSTs#6A1gv`u+{9J6*7?px48p zb?3`8`R1_&aKBYY32P6dXx&bL`ULcOQ8pI!9`$Sa8l`DGAwgyOW4bK;y$p&FugssD zY3{dyEy;RcUcf+h9)CWvF`J6>&ioOkEOq*pxjn7!aF&5Gt=ku)~b zTP2?!8g>$OL76-z3UGzDr3|MAL^+Svy0Tyg3Besz>He&vS%^2d|5iLN61ngrGxd-Q zNy-_Ocx?8M4gN}cv+Bogk7Cr(=q~C(c%wmK-%%a)(kKQzS|0LbQE!c z7Pc+%)v4b=5|;uWo_nVmIx`;o`2pwZL*-LYbLVU;zvPIPLg+^YeZ_PBETC6uh7QhW zKR!BoPnphAb1KE)EYOxs2Oby`W|#Cvkup0X>bf5wd6(K z0rq&B@ZT5yYmcqE7Jlb5ZeE!>cZIn=;sz2DHDy>RiAk&H+CTVd%A9!IW_^WZxNE|o za7U+<;HX+%K0Uy4W9E9W!7uX4R9F(=J_`pDk$vi? z-j1WN9!zmY)GSkXfH#;kCT>|ggJUGpqdu8Xkm_Qm@N(=2BxPIbXboxuVMzpR>dvC;G7I^7_ zH`=Kd+t|u~&3rq#JXU`3%Ju0xyC>8SexcHB`Kza4p-0Qz?KauGF{;1)G7}c9~9wz+}oy4ENql=sQz9o>$ zS1_~gum8#CmnM*lxe3XCcxg)5oqi?XR~>ivFH4}_$}n9^SoOFHV3zAL*`F$254nlu zSE)CTJJ1bW3Z8=US;M*U=qYsWQ@fW%)*m2C)3FeY9CVBzYAaSP)*Ju7D`fJwadywM zzq@0U)H;1W_=OwpSRrRHDJ`Dd7 zrh)jO@Nb_+Z@hu!{|J`91!$>}Bj;KFd(ZG#lZ1gP161RE{4`kWr?25ye6v}bdwP!6*+}tU zV;UTMr9YE+PkU(9TF8B$Ip!C;_Zz}Xy!0u=Xgbtz2>?qR!H!=LZI*K` z#@L*idIdTs6ONHcYWmc*oA~t~!*4ygX2uVv=*)@56S|G!QC@dkPowj2guTt&h`J+4 zBlu;zRr5(zOJh8IhLi6rpn+gDDpepp>PBHZ0aEA$h@G*iM8@pYblCs?l4~S-4Dx9I z`R_MwU9-Hsv&X+|dh6Lsi}5;iBa!IQvL)ySiB8CfKfk~q#Iy>u3!wuKkdt3apysiP z13JI}YdVN+3jZG{6mCDks!5YgHRoA!1kRBETN{y!G2=Y3=MZUhMx+_Asrin51o%GM zyJ;BzPPKK%<$Ne1kDrM=_7#vimrmPW+Q_y_GY3Wzwkb+f600$3%a>jlAkw46gf`$z zPqF{}=*uvjWa!k|&Z4Lk-@~KWKO4Dihd=N3^poYw4-cik1Nd-Gs4D1HijYSJ!~^bT z4xD@;NW3|8FQ=C2Ia#{ZE~dsU44aK+L~ZxDU#`8t?)Vinm`-U?pYpzeX*3<n!##=niA;wef~P(t*aZJpLTR(0X4>yzUbKgSBC&CfbY+% zVZ^s2B(Y=+_gVKNz+>U8sB2i5_sV-#>POs(@a9nP3t`8&5x^*}m!>L^Sb$`ds$(~n zchB4v`fk?G>^(F{OJ?RItg{3rtWT`b>oX68g@yBivAe@8c6YFX)D{#vFUm#wg6b_8 z7;gSQw!Q)=%XJG^5TryJenL8=yCfB*1p(=jRvMIUrTIxEMM6|0qy?nA5m1qCM7pFT z@A}>6oO|ZnyJz;y9-Z0$_r2eGS3K)k&(d@6HTt{J62yh?vLoE(S|>H$Sc{km*?#O#W#-asb8B&0Z750!OI&Gq4;^4rccP2YM}tp;^?2_+5bP$f-;wU!5@>kw z=Bj7L{FiA!@sBHA``;d^2?W}BLDVYorj7qiEIb0JCe%mq@v(3Tkf`6n^%)NbRA1cdVe3mnSC9|t5vydwoa9{trP^Gi#T}{l zDYqUj4`vI1j_M67D2rLaN&d&&3F%PVLX}JTEjkpT_t>u`kVOUX&2m$j;SzCHw%O+B zeL-G0K&{bl@(%}=zNmrk}njm%Gs#6!IyUz)rqzU5GyAmcE+Z!dRuS9 zyB->PIRvW%2GVYtk>SQWv~r-tgx8_icauS8PJzfTM70bW=SD0DjgU|O+5I_{?71lz zWaw0{eST2Y=w)yQu;(Ib2>9PW3v#D%kgu>mM}+dX%b*$$7X3+zvP61imJy>T`ze_* zydf)a9n|zfYG$9|sp^Vb9D}%}I;`{guu8CI;{iP>)UjeumH=U;7`ecwo>iS{xj=J5 zj1urx{|0jcmcfPuWaM#y`p`|$^YoYm-6v~y3TIU9=o>gD1s@a5Hzo5+-A=ar5bCEO zV#FsWvw?8BW?;+d7z)P$53clVSycWlEEnq$yY`zo@>RslFFh-7s1l_5GsIjNzrQe~ zrRPGWywHQdt_e}%i44GaggEI;?%LQN)B;Foz4hau(wI80%TM zVnI==gulPlgTQ%y@hR^i4n5V*&O)cQ!uThLfvInl`aS^t1(!ckkcU0c|SH01qgtxJN7H z{`U!P-4CIE|0S@%q>i`87hf@p9zA^0@r{`zw9&f<26R`k_R9?iN84%|pfIwcnXsQc z+*=-!qwKtOYW!=nfc+QjE&jXCF6SC!By2Ap*7^c{2(%~IqXBl%Fk`~rQ~cjwq?B;C zr_TeSmc^3eAM9HA7H=EH-Bw@DH%%rC6}Q4IgUaZ4L<7fHP#LzOsqOX3phPEOQ+o+D zlQ+iRW@FHqG{tgs;?+TEsW`Gkvnr(PySg*9Ve^akxaGSuY~R-&=MtENeD9m|Ov zh40hm>snXeEQh+x2ww=hKO0p)VE4n2_S)m^pzauz2sl{RXE&*<260zbzt;r!@1=ZS z1`hQ+X@Mb(w34*xXIUmSK?9QwB~O_f58#F(NTmPAW?kbl#h=Jy_P`pVIB@_LN&W*Y zx?4`rht1`h+5eD8#v5OJW`?XQ0e7eszetq*iuhF%Y@T@Oa#g4FZNSC3K*0Ga0H;Z; z=qT~nMG*Bn{0{T_B6&c?%uUBcMIk~@*ap3bDz5)&IPBH@eqssNQR$UKeBj-t82hNx z_AU#WJAm=EY4qD?x;FFqgH|UqaRgtLC2?^J?3PM&q1n>$9qaAwjq*tSd6(H4ykjqF zYE7Y0eh|K~#rA^()+DmOiCMO@);D3nbx6!<)34Es7@ z+oR}azcW!fi2Xwo?!G5Fs$fvfkQ~!$hVk}y(00jiMWLf9a;PP3%Bi;61xk(7C#gAl z*h28w&u&>$^fNwGsKj?g_)~RQ*FX836}=M5KRG@-edROwN=ukw`y42|c9X}b`aURX zbX0p^rIpkxsSi#tK_`$t%94Z~WEsk$0N;Wh$-e@@RrJwk&m1J;09;^8HxiOtc=-5M ztC-$G_w?c=G>I~9WM@_=e5Lfuyl>1n(i{;?gt+K$WP6ghIZ$cechA;K)P#_qvoAG(5) z*S>|{s@^)9e#osW#6QI+4VU^MHOAZ9n4DFM{e9f2tF<9Cn-SGhK*jsAD3|Z{`}`3) zU!)mLtraxYzQS<22mb)DDFAuA_=r*k1xM3L*x!H$IW& zkX|BfRZ-;c-@mOu5H!*nS}epx{!7@qg&)KLUI;c+l#iiVsV=m++Z-r_D{5P%)36>yP6#iIN(kA?|7HCh1IAug<*jR|cZs9m3H#0m z@8W-24c=IV2!Ho&5?%3CF_87*a@2xg;*S2hy*`41m^j=9QEXhRV^HPzdRyOw83jNG zf!h+}r$AW&go*A90S5cjP#0{h*T!FH(WJ^8KH2IZ&i$LO!Y_&WZ0QwM+Si!*f;eBZ zEgN&!3j_ap89hHbn3I@Xa;)7DVUyCCeC5f&gLdbwyrpdw3Um4j+s6NWXwHCKvuR#{ z7z!h5CF7lP=MP|WGz)zuRJUbgMG)W(g^>7ObFPZ`-|!b;<_+(l>-ICryq~`~pG!@k zNQslIfb4L>(xOAc<>G>^WBAe!@rYYj~EHs4F{14&YqN=y6LtHer z;L1D2%9BG02XpYRh+mb#w~#ZbrqOJD+Ij?_!LzQOIM~Xk2wA>sc+uy4#^Y6hRpvQ7 zA(QWcU^#E{D`XS{CEL*rGlPZ$?TMVa%8)hu%iBF~0x=zCpz*PPgBsf3#E+Joszds+ z&67FSECuSTe{b!a{{Y@MA9yRUZvrvjgolSjFh&}WM(#4u!ylvmxju7Zl

CJ<~rnHudY&pI73^ucZL@ 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 literal 0 HcmV?d00001 diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index a8e5e68aa..5d1510de3 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -4,8 +4,30 @@ title: Getting started in SBND --- # Viewing charged particles in SBND using a particle gun generator and analyzer module -(Requires some intro to reco. chains, c++, python and a working sbnd code. I ran on v09_43_00) +(Requires some intro to reco. chains, c++, python and a working sbnd code. I ran on v09\_43_00) ## Particle Gun The particle gun is a simple way to simulate a single particle, or multiple particles at a time in the SBND detector (This can be done in ICARUS as well but I've done it here in SBND). Let's look at a particle gun .fcl file and see what's going on! +``` +#include "prodsingle_sbnd_proj.fcl" #Include .fcl for producing particles + +physics.producers.generator.PadOutVectors: true #Duplicates single element vectors to match length of longest vector +physics.producers.generator.PDG: [13] #Generate 1 muon +physics.producers.generator.P0: [3] #p = 3 GeV/c +physics.producers.generator.SigmaP: [0] #No variance +physics.producers.generator.SigmaX: [0] # +physics.producers.generator.SigmaY: [0] # +physics.producers.generator.SigmaZ: [0] # +physics.producers.generator.PosDist: 0 #0:Uniform 1:Gaussian +physics.producers.generator.X0: [-150] #Start track in TPC0 (x<0) +physics.producers.generator.Y0: [-100] #Start in lower half of detector +physics.producers.generator.Z0: [-50] #Start 50 cm upstream +physics.producers.generator.Theta0XZ: [25] #Muon trajectory in X-Z plane +physics.producers.generator.Theta0YZ: [30] #Muon trajectory in Y-Z plane +physics.producers.generator.SigmaThetaXZ: [0] #No variance +physics.producers.generator.SigmaThetaYZ: [0] # +physics.producers.generator.AngleDist: 0 #0:Uniform 1:Gaussian +``` +![Alt text](/SBNSoftware.github.io/SBNYoung/Images/coords.png) + From 73ef1d71006479a7a4c7f1995c6be168cb8efa5a Mon Sep 17 00:00:00 2001 From: bear-is-asleep <67704640+bear-is-asleep@users.noreply.github.com> Date: Tue, 3 May 2022 10:38:18 -0500 Subject: [PATCH 0116/1437] Check image --- SBNYoung/particle_gun_tut.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 5d1510de3..76d0cdb23 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -28,6 +28,5 @@ physics.producers.generator.SigmaThetaXZ: [0] #No variance physics.producers.generator.SigmaThetaYZ: [0] # physics.producers.generator.AngleDist: 0 #0:Uniform 1:Gaussian ``` -![Alt text](/SBNSoftware.github.io/SBNYoung/Images/coords.png) - +![Alt text](SBNYoung/Images/coords.png) From c1a674100b9e32c8d0e7a7f68e77f3494980d137 Mon Sep 17 00:00:00 2001 From: Polina Abratenko Date: Tue, 3 May 2022 10:54:30 -0500 Subject: [PATCH 0117/1437] Create DAQ.md --- sbndcode_wiki/DAQ.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 sbndcode_wiki/DAQ.md diff --git a/sbndcode_wiki/DAQ.md b/sbndcode_wiki/DAQ.md new file mode 100644 index 000000000..769753b5a --- /dev/null +++ b/sbndcode_wiki/DAQ.md @@ -0,0 +1,20 @@ +--- +layout: page +title: SBND DAQ +--- + + + +SBND DAQ +========================================================== + +- **Table of contents** +- [SBND DAQ] + - [CABCON Information] + +Wiki page for the SBND DAQ + + + +[CABCON Information](Running_VST_code_on_GPVMs.html) +-------------------------------------------------------------------------------------------------------------------- From 9b610304949c55023baeb52c69e40981770c1d32 Mon Sep 17 00:00:00 2001 From: Polina Abratenko Date: Tue, 3 May 2022 10:54:39 -0500 Subject: [PATCH 0118/1437] added DAQ section --- sbndcode_wiki/Wiki.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode_wiki/Wiki.md b/sbndcode_wiki/Wiki.md index 70ef691bc..5e3246a18 100644 --- a/sbndcode_wiki/Wiki.md +++ b/sbndcode_wiki/Wiki.md @@ -124,6 +124,8 @@ Useful Tidbits of Information. [Vertical Slice Test](Vertical_Slice_Test.html) -------------------------------------------------------------------------------------------------- +[DAQ](DAQ.html) +-------------------------------------------------------------------------------------------------- [SBND Assembly Master Document](SBND_Assembly_Master_Document.html) From 0fb8f7660bb50489d002e1ac56013106754b0c92 Mon Sep 17 00:00:00 2001 From: bear-is-asleep <67704640+bear-is-asleep@users.noreply.github.com> Date: Tue, 3 May 2022 10:56:55 -0500 Subject: [PATCH 0119/1437] Check image --- SBNYoung/particle_gun_tut.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 76d0cdb23..db46bafab 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -1,6 +1,10 @@ --- layout: page title: Getting started in SBND +image: sbndcode_wiki/sbnd_logo.png +# menubar: sbndcode_menu +toc: true +toc_title: SBND Code - Get Started Guide --- # Viewing charged particles in SBND using a particle gun generator and analyzer module @@ -8,7 +12,7 @@ title: Getting started in SBND ## Particle Gun The particle gun is a simple way to simulate a single particle, or multiple particles at a time in the SBND detector (This can be done in ICARUS as well but I've done it here in SBND). Let's look at a particle gun .fcl file and see what's going on! -``` +```bash #include "prodsingle_sbnd_proj.fcl" #Include .fcl for producing particles physics.producers.generator.PadOutVectors: true #Duplicates single element vectors to match length of longest vector @@ -28,5 +32,6 @@ physics.producers.generator.SigmaThetaXZ: [0] #No variance physics.producers.generator.SigmaThetaYZ: [0] # physics.producers.generator.AngleDist: 0 #0:Uniform 1:Gaussian ``` -![Alt text](SBNYoung/Images/coords.png) +For every +![Alt text](Images/coords.png) From 72bc509dbfd8663fd9892a180c17a5def913af57 Mon Sep 17 00:00:00 2001 From: Polina Abratenko Date: Tue, 3 May 2022 11:33:01 -0500 Subject: [PATCH 0120/1437] Create CABCON_Information.md --- sbndcode_wiki/CABCON_Information.md | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sbndcode_wiki/CABCON_Information.md diff --git a/sbndcode_wiki/CABCON_Information.md b/sbndcode_wiki/CABCON_Information.md new file mode 100644 index 000000000..f7f4dda79 --- /dev/null +++ b/sbndcode_wiki/CABCON_Information.md @@ -0,0 +1,31 @@ +## CABCON (HDMI->RJ45 Converter Board) Notes + +_(Notes from tests done at PAB 10/12/21)_ + +Settings (for all tests): Connected G (HDMI and CAT5): + (J also plugged in with HDMI but unused basically) + +### Ver. 2019 A2 (we have 2 of them) - do NOT work +Symptoms: +- Does not read trim voltage when unbiased (values ~0 V) +- When bias board to 49.5 V with GUI, adc reading is ~33 V and voltmeter reads ~0 V + +### 2016 A1 single HDMI to CAT5 also doesn't work (same symptoms) + +### March2020 A1 works (the one we used with Stella tests) +- When not biased and check voltage with CAT5 breakout board, we read values ~4 V (trim voltage?) +- When bias to 49.5 V with GUI, adc reading is 49.3 V, measure with voltmeter and see ~51 V (all positive 51) + +### 2020 B2 (we have 2 of them) +- Were wrapped in packaging (unused) +- When not biased and check voltage with CAT5 breakout board, we read values ~4 V (trim voltage?) + - BUT CAT5 channels are positive for 1+2, negative for 4+5, positive for 3+6, positive for 7+8 + - When bias to 49.5 V with GUI, adc reading is 49.3 V, measure with voltmeter and see ~51 V (-51 V on 4+5) +- When take data with monitor SiPM (connected on first channel, which for Stella tests was 1+2 on breakout board), we see a light pulse on channel 2 (corresponding to 4+5 on breakout board) (see schematics on next page) + - Has worked with only 1 channel connected (monitor sipm) - this was the negative bias one! +- Why does this work with negative bias?? + - Tested this with just channel 3 as well, does bias properly (up to 49.5 V) and sees a light pulse + - Tried cable with all 4 channels connected: voltage doesn't bias all the way (stops at 33 V) +- Definitely can't use channel 1 (our Stella channel 2) with the other ones bc it's negative bias +- Tried with just 2, 3 positive channels connected, still only see light on one channel... +- Tried with the one negative bias channel and one positive bias channel, saw light on both... From 6ef28979986e59e4da5b277fdaf579a41c1f1ddc Mon Sep 17 00:00:00 2001 From: Polina Abratenko Date: Tue, 3 May 2022 11:33:54 -0500 Subject: [PATCH 0121/1437] added CABCON Info link --- sbndcode_wiki/DAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/DAQ.md b/sbndcode_wiki/DAQ.md index 769753b5a..99f18751b 100644 --- a/sbndcode_wiki/DAQ.md +++ b/sbndcode_wiki/DAQ.md @@ -16,5 +16,5 @@ Wiki page for the SBND DAQ -[CABCON Information](Running_VST_code_on_GPVMs.html) +[CABCON Information](CABCON_Information.html) -------------------------------------------------------------------------------------------------------------------- From fecf3931ab0f6b77c0cf42444e3abaf63c62de37 Mon Sep 17 00:00:00 2001 From: bear-is-asleep <67704640+bear-is-asleep@users.noreply.github.com> Date: Tue, 3 May 2022 11:57:58 -0500 Subject: [PATCH 0122/1437] Check code lines --- SBNYoung/particle_gun_tut.md | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index db46bafab..dc6ee0e0d 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -6,11 +6,33 @@ image: sbndcode_wiki/sbnd_logo.png toc: true toc_title: SBND Code - Get Started Guide --- - # Viewing charged particles in SBND using a particle gun generator and analyzer module -(Requires some intro to reco. chains, c++, python and a working sbnd code. I ran on v09\_43_00) -## Particle Gun -The particle gun is a simple way to simulate a single particle, or multiple particles at a time in the SBND detector (This can be done in ICARUS as well but I've done it here in SBND). Let's look at a particle gun .fcl file and see what's going on! +(Requires some knowledge of reconstruction chains, `c++`, `python` and a recent version of `sbndcode`. I ran on v09\_43_00)

If you still need to setup your `sbndcode` area, follow steps 1-3 on the [SBND Commissioning Page - Get Started Guide](https://sbnsoftware.github.io/sbndcode_wiki/commissioning/SBND_Commissioning_Get_Started.html) +1 - Visual Studio Code +---------------------- +Although there are many text editor options, I'd recommend [Visual Studio Code](https://code.visualstudio.com/) for many reasons:

+1. It has syntax highlighting for almost every language including `Fermilab Hierarchical Configuration Language` or `.fcl` files.
+2. You can view `.root` files using the `Explorer` page.
+3. It supports `ssh` connections with `X11 forwarding`.
+4. There are many keyboard shortcuts such as multiline commenting and search and replace.
+ +To get started, let's first [add an ssh host on VSCode](https://code.visualstudio.com/docs/remote/ssh). Whichever `gpvm` machine you use should be fine. Next, we should [add extensions](https://code.visualstudio.com/docs/editor/extension-marketplace). For this tutorial, you'll need the following extensions:

+-[Fermilab Hierarchical Configuration Language support](https://marketplace.visualstudio.com/items?itemName=robertosoleti.fcl)
+-[Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) and if you use [Jupyter Notebooks](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter)
+-[C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
+-[Root File Viewer](https://marketplace.visualstudio.com/items?itemName=albertopdrf.root-file-viewer)

+Now we can get started on doing physics in SBND! First, open the terminal in VSCode to make a directory and your `.fcl` file: +``` +mkdir /sbnd/app/users/$USER/tutorial +mkdir /sbnd/app/users/$USER/tutorial/data +cd /sbnd/app/users/$USER/tutorial/data +touch muon_gun.fcl +``` +We will edit this `.fcl` file in the next section. + +2 - Particle Gun +----------------------------------------------------------------------------- +Using a particle gun is a simple way to simulate a single particle, or multiple particles at a time in the SBND detector (This can be done in ICARUS as well but I've done it here in SBND). Let's look at a particle gun `.fcl` file and see what's going on! Add the following lines to the file `muon_gun.fcl` ```bash #include "prodsingle_sbnd_proj.fcl" #Include .fcl for producing particles @@ -32,6 +54,8 @@ physics.producers.generator.SigmaThetaXZ: [0] #No variance physics.producers.generator.SigmaThetaYZ: [0] # physics.producers.generator.AngleDist: 0 #0:Uniform 1:Gaussian ``` -For every +(More information on all the settable parameters can be found [here](https://cdcvs.fnal.gov/redmine/projects/larsoft/wiki/EventGenerator#SingleGen.)) +

To get started using this particle gun, save the file and call + ![Alt text](Images/coords.png) From c507c79b26b1ee7967a911186de38c6c3e39f71c Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Tue, 3 May 2022 13:48:54 -0500 Subject: [PATCH 0123/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 0e4f15b6d..e7ad76b51 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -1,6 +1,6 @@ ------------------------------ -## other setup info +## other CRT \#\# setup info ----------------------------- 1730 digitizer channels: From 43c0e7caf3f01888dcda2ce2cf15dba178c0db80 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Tue, 3 May 2022 14:41:46 -0500 Subject: [PATCH 0124/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index 6f83c9ef2..1fb008950 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -19,8 +19,8 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati - references unavailable for SBN2022A and 'current' ## Approved reference tags (and alias, if available) -- sbndcode: `v09_37_01_03p01` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_46_00` (current) -- icaruscode: `v09_37_01_03` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_46_00` (current) +- sbndcode: `v09_37_01_03p01` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_48_01` (current) +- icaruscode: `v09_37_01_03` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_48_01` (current) ## Quick Start Guide 1. Get a valid kerberos ticket with forwarding enabled (`kinit -f `) From c58c0d95e1148d0117145a1e95aba28792211b6f Mon Sep 17 00:00:00 2001 From: bear-is-asleep <67704640+bear-is-asleep@users.noreply.github.com> Date: Tue, 3 May 2022 17:24:08 -0500 Subject: [PATCH 0125/1437] Check formatting --- SBNYoung/Images/vscode1.png | Bin 0 -> 329639 bytes SBNYoung/Images/vscode2.png | Bin 0 -> 136141 bytes SBNYoung/Images/vscode3.png | Bin 0 -> 134054 bytes SBNYoung/particle_gun_tut.md | 317 ++++++++++++++++++++++++++++++++++- 4 files changed, 316 insertions(+), 1 deletion(-) create mode 100644 SBNYoung/Images/vscode1.png create mode 100644 SBNYoung/Images/vscode2.png create mode 100644 SBNYoung/Images/vscode3.png diff --git a/SBNYoung/Images/vscode1.png b/SBNYoung/Images/vscode1.png new file mode 100644 index 0000000000000000000000000000000000000000..45977c3d120b6d4728333a3879883b65ee05b870 GIT binary patch literal 329639 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ÐA zcgwIm?U@kKdmyB;2&vlSe@NY3K6{eP-d(Oz#+F^5EbQp3`V38Iu@BAX62lcM3VkNY zqotvk0lOlCc%|KNqJK^0)=+U92qDOdo;(cam@6LwqY(bVZpl8Bnm9CZ1zJjjO7z_$ z(=gr)mwVQmEKU9!+v1cFH~KoNy1(-jtN}byX3}salZ3WmaHwXr5!h85=9x&KuC4Kc zJQ|L$_MDj{+G5v@8VeWt^|QAQ<~&4;)PD4ZjNs4-gGu7OcbH%a1gL;4Umv<(yDeos zUs(nTbJfuv6qPdNgPJAgIrCzX80;BL|A^1me3!Ky_~R>6^ywqqV!;#fv3Km?$xu#p z>6TqI5QN`FmwG6TMr;{23K{dWDS5a0*LSwjr%Ud3q{XyO$odz@FiLjgRAFp`#pmr3 zriDj(4+@7C>?FB280Kzs)ARCh(^ngmKOOkmjrgn8Viv{f(ndO_9JBrW!iG_Jefb$? z!c{2n@lwp(w-*KF4^0j8q?Bp(BDUF6Z)5`D8$sb}Ea_Azd!uLz#xSo*T6u@Zq4Kdw zy{UThQ!^!xB=5jT67P0ECL$lJrl=OSvBiQbIgB&6<+Z8kn{yfm0LI=j3G(^Jl+lVd zje26Ftl>`V)~DB^rbe5b97Qx&)07aX&8YO+^BMP+7z$hSQQ}$PoBIKyH{(9byPfZk zMd0+pkLDv@ld>=j@1b|8UBkUfT>7gzZQDHUf-$KY8~`6m0lT z;dBLbXeB|g_*F%T|M9QJzfydnK>*0w4u#zc!+Skud^onaQKI1zn?kx5j$kLPuzbP; z44WeYYlibA$F4xfI?-|b>zfuicIg`c3z z>8HlE7kUWi2Aw${E}7p5*MI8yI!f5dFIz+thlc*)9dy_0(fsFe08f#{(LBL+_TUQL zZ6^E?-<*6a=CNqK(Z9Ln-zYaVhM?POPeX>8|Eux8IPljfyOdePsfMhWx|Nj=|CTj; zBZ}=gscR3wY@qJc>EuXA#&0(ljjFmx%!Q9H0_XZ0Cu$()Xpy za0DPw$K#bRMx{@Fvga2R^fB`CWB?KUSG;fqMD2;b@zhkFPJVXu7}dyeObOra^2nwS z_vdJ?f|B5y?tOd*0ObcNa`8;MN(v(boF6~nlv;bQ6T2s|S(D`mkTC~9cF`z7K8kT^ zX{oB^I^$J72ryk5OBq+yyyTVUL+R+be%c#1waEwci(Ggy@F%SX6ii4`7Dvc?>dRYI*BcuCIK32y_dJC z!e@86BZOgi4Z!F`w$p{|bw8|n0-11EIdz3Jv&TdZlNDb`nI*@8uu%LIerwgnXO(rP zV=MXa%M0YnC_u+N*J+PB=*~@)`k6#wuhgDN&BtZlRa-jhK~j`OOIw> zri~UIKGpuPJhhII$r^?FwzfO(>wm0T!DrZKjdqh6_WJTm0CDJK3O|qi09zouqQVRn z6$2GiB@F|a(tMUL!@wJm8@2?F=F=Lmh%Io7z^dr%K0D+SyW2}#?K0&)|5U@gi%SXq?S9z3XOKv9Rj5J zLdjO#W@G)aQ!0F36{u!_3 zur=Ed!bTTz&7EF}EN!Xje8X8$FUDtetf}ZdwRXnk-giw_9@Q$T!)bv&=RPh_u=K@| z7!7m$b`fs;*0jRPqy~}G? zx)nc~5=iq^>S_k0$k7;7eKr!2aklJU3J|XQ@y5E$o&k-s@XPbBwW0w#-JAg9sK?G6ePCZydz*`S z&NdCU0Hg+ee)tJ}s?66~BLze^T+yrL+F43B5^mY1T99m9tzb*C)!OeLM?Y@SCW{NN zeVcfyeEszVwenN}pN!3BPQ%d^k$B?T^@>%9#2D~9yrFL2-)`0KK71<7iVzFBkON?% z2A9G$c$ny@&}I0W#>A~_?MZ(*p}GCB)rPB{UZuY_08mqlY;bTP==gj3Jz-tJOb5AS zWZsiN1lZ%79IIFl7M*VXj>1cD%9PVr$C_AkTn=pWixsZhgzV=42eD*;n{7SxPTuUR z*M@>Lh*uJ9noLLD=J#1Sj@hgE+Np9+n6Z3gqTJ1zhwlZ&64Lx2dXh3E^qi?K@>=0l z&#n@t52jwF>15Cuxdg&A7%sHPnnT6{PWJc$_1PuXff(Os+m}K(-@(*dpL?()3*X2qAX>Xc;nhmBzE0xXc?_Jzeqa8$f!Tr4>b^=>5);|BtV? zjH>e6*S`hn?vO4iY3W6$goJc=H-Zc4?v#-3ZX~6_w)OVztcg=>6z_{qbahqE7V^ z3UC>c2v-7cDt2P|;owCet*9#$Uth9Yon{ySlH+b%hfKGbT43@yosaL`Pl6_4CCoT2 z8(JH3qUqIHS_uLaD!E4uiWEwkDf}f%BafUR@r>CRO%%s1Jp&-mrf8qLi9B?gU%@9X z7sMeY&8K87zbwN}1|0a9xb55Q+JRvHmpaBjL^8+NCTd?4sT#v)6=-4&E}-)+e*JFp zm4#eOYy{;1R|&+(fDX(=mufg&R=X;X44>~bi(dbcAl3(*E!WILfu|FpA@5+#)^;k6 zG`PzSKHW=g9wvMU>x+YKeo>+ev}t=DHDu+&vuNq-)ryY}9fLt6Ri=S_TJfH}kpM&m z6vo`PZ4SWErE=r!38W1Rz*h(>F&r#`L5X2tz*~oUqsqI03x(@hG-7+qK+5n5;ckxZ-%CqT@rSyc>B4YLeUe*&EoVa&a^1V%yQL{!?f zhaoTjq~8R1Zg%#;#nO70O+(g~jpBSVH&O6cB~1QJtbdd>#3IA5*Diat`fsEJPf?sK z`pgAsG&b@nEzkhZ{xh0^(1j3!_gxB9Oy}ma&H%mc&$a13B40pfRToj@c-D{-78QOu zqsx{U=}ZwTO(9*n(mQMI}(5j_XMtR2i&{A$&nprRfD{=^!#^_7kc`G`7=F``-KNy?FW47Wh~CX z@mO8{nz})h-nVxD74i-g2(DklM&xR<_V7tX)xzt!$vu9ubHc19-j)~;%o6ot6Tivo z=kZ_MX{F9`Dg?9O3nKO}OdMR_vS9)I7Vm#i- z7=H@6wtk+}*lxaYkJq(tP}jg|Lz>e#0%nR6cKt&$K~CLqF{i2hd=?AbcjF>#s6t$C z7Wvo1XgIU`?Pdoo-=0h9F=Y4i8IT+QalfA?TU5}ZgX#|eFh~@?Sb;D?@R`EGq$l1(t$jfEa%3aO)k=qDDLgcPQa9B4B}w5xfk+-j*BxJ zVu?yk0AX@9`VlY%nop1J82_g6a`>Yh;}_8ta;SnZOcjkQ1HE;N75eH@f>EWSCJA07?I!+KzhG19H`6G- zHbb+X74AR+U_fSnAo{qq+D;I@n3sKj9-a}H5Ad}}EHhlF%or7ju0`juK0TbjlES*A z&HxkfEym$;4nrwM__H3H6OiChQA{<$^ZTM4>3cy^uM)kHM#K_>S%nAjzaP^j$w%`)cspxRU zlu~4)M{!iYob`ebW+4Tg+vQ2VW}6scq;;TNi+VL6!&=J1CVam-py#(vQ7HI0?i#{g zr9x|(QLqehWl+;ckS;&)5auv2Ru&_^|KmLM$|{0Vd+Qh~7Y7fI9#C}NWduVBHb@dc zT;Z04G;rspr9ExKGnr$v(Ax|z_K+GDiraj+ZO_K(4ic3B6-0L!G~b11TN-}j{>GcD~ypOnMen9 zxl>{h9|ANQve~5(0f+i_x0S0Gz2ya?$(~vZ__K}V3r_-?XBD16IAl3df+fz+7~Wh_ zNu^nfgy{-yyf-1+el>6lNFs>_+)swIP!0R;=~lP`os%J$cj^2g-*0B33?72xJfSe-F!wSkI2@D{Pq9X zl$15Agxff?^S9b4k$U4Bh_3?j=vZBMTnyfo@5-D7e3R6&ZU8bv^W$7umo*t75j=gJ zCW9J$LXo1A=8gA2xoCRScK)=ga%OM~jey17TW*(G20K&?70Zq${a84#7Mi%&Q)ixs zQai5=u8i|O3$<+xo&(ZFLW6t;oB4VWkYTm)U!s@U!J{hBF*D0b)>JUpBno<@yJ4CbDS#kcR|YpK%C&Hx?4T!TB` zkA@5aLO{fmVlcx(L)eU-BBp^2K~CHRi7@2yq4xDhlQ3*z?L!Qn81$4^3y|f+ud#B_ zvefZ-kdB;zw?B|4AIJv%a!*aT-vuwUM#4L{LL*}APXs8}M~Fi99k!~-TTql}wgJ)z-yok*UOBasPi-i_)3B)6*1Je% z{zzP}BX47!#h>GaQ*yA1&@b>Kb_+OPNpW6^6G0e)HwJLCNCp_n@3rltu~8lA2AD?- z9WfubBSyuK%(sL#!o09FEPq-Y_tG8R<~h^{t3QC3;xJ8dd(k7H;;?M{gqn$iKYt~s zkPxmNWGUB&diZ;SZTc6Yc1D1fR0?C72o&2JYCiE!2?C;r@dZ~a-rg znR<)0#dnTY-EtOss!!+BK@4R_NTQD7zN0W_H9!%jNI*257E&XUM+({Z>H$G)J_kKf zvDo_wB1l0ZPgtscU$vdW%KBi^qV@CnMwtrxo~AirN-61%aIcUia>cf&OK(}&CnI-r z`8-S|Yg@{v-)*&OaCo$hlU`PG+fPpv`CeO3Y(mq$9MYK?ffLn#%h#)5#>5+x3By{5~plIgCU!2E|*dhV3+U z#O~hSq=JVWvtU5V!Y9o;Kal*t**pAby2ue=4>E9+J{T7$|5u6znYOK@~F%*w325fif_9 z?bSR**s!)W5D#wW;4`_AxbeZtb}Vsxxb=URL1p}On>sM6y>k#5JkI=<^)A)}K9>S; zlOILJBa%aR5}}(5FY;((A^Ky;@2Koq{qbF2Z4tOKfU7`fOXvI<90xt5O4?8Qq4&30 z{PTSg-gnWpV>cDicxizyTj9`rkJ+sX^%JZ6Mhli6szXzQ=2?rFr{!%(`P&JqR9@Q< zMKY*L)h72bbZq^yFJnCE1pMT&8_yAR3gRT-Q0NM733A_f=Z^-o&GJJ}e4GO%IxG?L z=?B5k|7uVi;xACB~56 zd2@}l+)F#lbpUbXSa}&yis<|>*TcR8DUOwTWxYL7DL(F9%&D{A}n%O!u2w(fKcPuuBcZD>Io8VzAz9N0vQ5i0$ z#zo9JU5`Tukls)3_jg)oIC(B^CgHbsoTaNbci6;&gH#9x(DuW`bMe*?$u7kiKLd>- zICw%iiA13XKS|`M9wKAU3_vK%O_cguXZ@>bOk=LZ^DB(^+j<0N{_)iUQP01b3g1UC z!}enV!;Ru-5smb`Q!_WN`(Ld!pMRng5w@y_x@!D$ z3Pek#bw+aD7!D8H!flZ-yK=~aI;#6EhWci=YzlCVkk`UrqXW({g=-S~*cZ|{fik}`F zBV+i!9#R4RY|!eT(gGJO(nBCj6hB<743>@C5g}4R)F>Xr|2@1LJdiSIN&4d?inp41 zfIiVJN~CA*8wDLD^G6PoT6D|>j4fQ=D5IQf=VWHqEX9Y(;tIV1qkebJiJ3tPYvON6 z5l;oRZ{XCPcOoPP+M7b}n(=JdvT>`LY0x34(u8>#r9#Yj32+eeVV03u*#Y899cQ#=Zim+Iwh}gk%0Hf( z@+`OD%dR2Mu0c}!?$PKgE&_dy3H;dT0(OeeBwvi}@Pn@LL&DxV)4XwQgjh%MWr?`q{97lwQc^zNWGBZg>qDm(MBswN$Xs#6 zzNKBM{vE{=B<<6#MJDg^q_ptewb7eYA?J^r+RN8q_0yK&0Lmx?b|sV$>8KqdX`*iq zA3rIP4ESABk-rB2WT)UzDn=%~1-YMa3-cyq$7YcS(j&Y;bEt{+MI6uy@PARA(A*sf z5!z;IT$DpO@9)9Mrm(#idf@;PA;QR{I{C7`wVHbkwA*O|zb$(%dS$CvpMPO%92!yn z+Y4dDNU40T3#M^+8xjw&vN#!_k+%u4XVJaUx03_09*u!(p?D+0jZ@+B1(>7E4>!v; z2m-_N5QPZ@uHuuGKTyF;@k0- zp<9{YlqQ=(nW1h1bp9q5rz(qZK~dS#ry|eE6qQic%ZM!zOk~XM>LE- zPoCKuX=S1{eX({u{`UfS@zne*Z@2!MrLzHOesP0pY&mliivE#Q4|bzMq=s8e#WH!*s2U5!wv?zwTMAkuL{}? zLaq)F`s2jIAW?qIShk(vmi^YL(Ew7p2L}(k&s1W~1%+;gF;O`4eH*CLWcB-M0IIm& znQOl2gDVF7>%*a+_d>^Os~-K;QRs=8QG~)TJwhH7$ky>~*mOf{1+w9hqv+fCm5(`| zB0V}7vRRUdxS}X9#A6+&@v51tm)HY#h|G7s1ouatv4>1qWT_7@TVgbGW;sQ1zTxZ& zTUGd-5F=0sW%@-pCW9JDc*#l&3MC?G1VRb>lS+gsoWYZJS-RuX0- zYqSku_TD8|@~OhlvL|Z4-B5Pj4&CfNZed!3AcFSfuLDN#Qy{Q+sjmH}Gfr%L1K6%~ zm%TrRZt`QX2@Wn|8oLYZy{?=FkXM>EOlbhFU%Te)3C!`5nC|Ujk@p0X0q@A#IZQ9X z`P(-)q?R3$H>}+rmSfMs+lTeHj0Qype_2<%rX-ER0l-%16reoA(mV1di8m2QpfCnz z3ognQ&<$ctBp9s+6(m#XtQZ1tXkO1Fw(L{>Fxzy62=RI_p9`}@$=>dR zhp0j=&Q1v*7&>Gme&svCpNVa|uS?U81g;aHROz}XfVVTK2+#CJq5{|Mwm z0^?dj17HJR1gyoqOwdmqH9m1rlj4X8MUXRX+!N=IRVAZC=ppz7pa(OYMZb}lDZd_U zVnD_|2l7ajsBi0d=Ao#|Z^0pJ+U)GAtELreAl&_soFL2cHh>N%+(!QZ@Vmw;$}o6c z9}o}t95q+Fde5a>kWr)Hksf~E3n}g?ftpvyj{=pRjkQFT4c03|@lY`1ah`J}Ww8J3 z42`oDlS6u zV~Giv`XHG|_+gKOWzJcTH(z7nEe&RZQyiZ+y@nEJpRzcjIV_u&+)=kUIv63n#4j1x zIP&Veu}O(X$K->-g+S%9xn+-rE_WMy$MK&1{b}fr9XsP~IlBQ&H090DojnL_aM>#v zNruCrCngn9mZU8;{Wy^tr=TvU!QVaX1FpS#VslPz#;hg|<`ez0VT6RHXd8(T=veQV zdOy<6fYC!9*)M!Y{Oc-~#EwLM215f85w}pq`+aZQraS4GHdEg8^U>c!MrTEek5?OB z?_8EYO@N1>w|@TJC-Ia|^FqA4N*xQ()Zmm*&v-CQlt)|i?Sson3|P4B>N?}P`@E-7 z(~I@T?CCH)xCKi@xD)Czu!9jvwD=|dBICOEyq`d7Z zvgCI8{y}Tu1m!Zih#w z)c=zGCiB3W$LE>*)8+U#`OMcJ2L2=gyQu^GA^$K@DXF_F_kMAcX+~+~6>_@Nn52FN z9)0a>G$qei7nm(yRhV^a<;|QZQQ{Oljo)V}qq1Q@Cu$HMJbaNjj-s6?T~VT_8y<-m z=7~;w9^P3j%piYO8D}BIBFCm_(mT;kv3`4Fi^u1TiQk!hfWq9EbmqfUs91qeOmTK; zoO`Nw$#`Xu3r!je<>}$q)YqOI1B>}PDOzr!t!$5S z9f>CSvF?F)?v;xd<=NBsb9U>pXFX{k@UBScJ{XL@kJ>{>P;H{c1u>yD%E;ZFptoa_ z*5l3CjMUr}KF8gd8U#HMeGnd`{n_dt$v+Km0g8osl56a~%Fajaw?AA1a7xU!_~#_l-`Kcks|%WL{|t02=}dtQ2*=@jomKOr0V0#FFc4(B8`^y`DOKfO|~ zgp0qgqrTi$K ztmPuVGvuK%esN{&YByA7*x^jWioq#SUWPj1fh+nT^bA}P*!y1~?BbtSc$d$`Q@?6B zw8dn-UcuLJHYltQS6{LQVjqirZjJZ`b1J#Hy|9Ehhg_AJPk)D!CxVp(qc=Vq*Rmz_ z{z(9Ml;;I?6F;3<)QZK;2hW)<|MeIJ{`DBwRT$dTqzeZIyOhWHO?@!lmEO{C(C@h4 z6kgi0zLeGfivOx}_>O1hnrI06eeFC~7@g)c2l8N7{Z=>-0Uae<%C1~1!nki#mV~g+ z*mJZVB7la{5dYl^)5wc{5ZocKnf@su1bb>HQeJERL9+QjC>cP%D)}|+8L4*KXI*=I z|9;V&4v-9i#I$1wq&^mInO0b_|g2S)tiqR>fVWkpugH(fJo&9 z1e;jqEe7yu0w#b8LBM2S&iWT?=C8L!nHpx|t(~gLE2+Qm3;$!r^A2*(#&twJ``0nB8QriAJjE!B(Q znJfHpzXBQtMS!hbpaaMnzBv=i$k}94{}pQg^~3-3qbLllqHc015m@#@r}*1=s)6yi z4o^dbwrlUB^@hcKMJc|A>)cI_`cdeo0qukLEcP>-{1)Z}Q^~ycCQ10`73TLAJgzRm ziZ>2&%OJcOE974XjXLA$yiLO1cUl0_q|$z&ap1o6L-BkfW5l2laI=0(Br<9Ss|5^p}BjZF<0=xEswnoE!( zHrN*veJvd4vNo2V;wzCCa>X(=_)lRS@bFgo*OzHVt7iLk>TNB~nRj%{F~%$3 z6^NbGd$lU(;`1I_ENSWve6C!YO9t>04N>bbjL1%(#xfZ(NsN>S-8!MOL|^li6c?_73%=*-kf4c0XKHTRU}n zm`@x5fID>j@jPDv0-oQ04B)`1HlQ6CreFQxxdLBxPy#_E!7G3WVF8#D1!}$%nl_yK zXD6t@@fleI2&sC0*KHzJSH&AO-Lbl!*GqQ$&DzFNVs%WJ_w|^}Xn=v+gp+9@pJ~9PFN`?E2oocZ5){|j9xhwqCwGN#}ehNyx`7LfA?!kyM!fB z+uk$lV z_krmXC=w*1^Sf8mW%wVexE0md>rtjV7sIg3a>o3yp zF`-4#+4xoXlR}M4XAeJn!kJ4&V8vv#QVxGh+XDRwj4bNvwllfk(#)wVZB`dvfN}%i z(pGDaCbQU=S2osJjF-K!8E*dk4~7mk5WvHHJIW0uM?uhg-O?raur93kiOH>qroA)b| zR1>3Qo~x-I8$ni*b-ogN!Tzqdh*B@Vv$|Gp=M-9Em>mBlwtw>())^AN#k>28MaTXX zzwcP=1ahi97yWphp-;vuCT`b#Qj*7hwyWOOjR4-EL!10zlmcsYa*w$B`bK>nZS75# z07PWVnEJg%PC$hEj?~Kah zPLJ?N?xzcspX#ApghF5G+WK_ZvIl;2^XS;+UIKGa9dq;VTQ&d_l=vkw0{(Cho#=DH zJ3!)N4-7ofd>`*Bzui>ev^-BQf*O{r=O_welCe{QBqeUi*WlWCX<`{OH=$S{{$KAQt zoXuk#ZK9{--Gcq2-C*GIsF+iF?Hjn=>Y@e~3qVFyU!<5m4^U1>(395%&|VG$LXv1M zxsJR2@&JUS`I*Y!AB8-x>VbXwMpDK@PH-TG%of1L7DkisP5|PsPYZx5iF0l|je8W3 z7MivKx~JY55I~b|tgIb)1<+S_g7{Jl?sit`T)W{VdORC(TGt~+j{x*|6EIR8015k7 z80^H|{aXMgqD{`L4fO%WwdVV0fL3Gf542+a1i;z213>S2fE-8M$dxaGfGz+~^lU3v zGbPebcUx|^jj4PdIst#z+}-sG=i(jUf;|Elr*(jRzZ*mNCMPcW?h(MaUk!>F*wwcJ zu>uf-`qlvAsbIwRyu2QV_Ddem+pQGznEFRx@Kz(wdh0s$#Xb@Mb!+59AOZ)6;7M)+ z!jaam!g3ofz}!d&fW3>i{PO%&qH+c3A0!{o#G=2`IvxVEX9UZAq%VL_aX$OmEBp_i zrC!j0x6$qnkPjXKd@VK-lF zT%#?~lkxBKJCK+WZI^7ACA%@g4|Z15hM*$>jeLO|-N)k{p+RlJ;3CW!wG}PL!vuemwtY(i0izm(43a$5lLr?Aw+lP{rpM zJ)B=e;`{Dh5&enYI&=}2PLp)0+z@tG!S;y1XKjGtn*U=v-Yr1oprLa>)wM`9mwT7Y z>%bA(wi6jxH@^kIZaDCEMp;|!%#4We9KOWxaaoMjWc%FB@iiF%ddr6V7y-_pCfixz zAk#!ja$j)&Vf(cK)#6FMmJCRk`8ObWMM9LMaO!%RG`?yLa$<}9tnihc>R~N45d8bN z^~A#at^)74!9icWbEdK!?-?-o$nibH_x1rAII?x8iBUkyN^Y=ocd{P&j7Mxg(SSiF zAPL1lMW|luU8w`~pTr0?rZM~iv=YXcBvI0T^lM?CfF%pZhU4hj>aLE6>%qUMw0vH3 z)1bUe&RZEf)ocXHVP!8=($KM{69k4S68E4JJ?ue z1)wOP9MRmw7G<3gQWQLKadD&|TC?|u;4J&OIy3ELyJt_b+mX6Aqi1-66U&BpOP&)g zI~lFVN#@yZvj(RtVk?!EmHQpt4XHw&$u^BRAl_v=8Q}c%G1Mc6&g9{7rX`zgo*Y%-Z$Q^ zx^hfGdSp3>Y{rIpvWKryv+d4_tM82pcKGMEx#on=zW|lVBM8ZzVpR)SOcV+E1K2WkB2*t`%aTNYTeYGzIgcfrBXk29d41A z0Az-j@N<4zg-*j%=bqnVFlwY4F~Rgn>xuB|Fb9o@l)F0w^{mXy%4NsaqZB##^WFT| z+K6peIayhvADTI^ae}+JrN19&5<5b_OLseUgOw*=`~=`Aa*W(R$T#2D_}Rcg0V^8= zEV4~(Ss9a*lOMwrtn2+`tj{Lhw8c1+vid@kqvi>~xcUA$bOi&}de`fvD~wnGAFw37 z%0m_hKmdq}wot1(z#~WMoJuerVGs?b;}_GC(%y`8vLXg8pNmEj16%x+#f~3;;Y7G8 z%`JP`cD?o!wl$CPhyquV7au#mW(`N+v~iTFQ1&oik&!6g;WDZQ@6^2u=Q1LVkW#mw zI*pjmF?@Nt+;z9r#0MXQOg@o7Cx|=}Y=9pnCDMPrD3HQ-WYKVGS~A4OMYV+Q3o#BV z5TD~Py80x{Lv-V-UY8{qTMi_s$z>83@7MaC&7%C`u>N)j2g{XQloz2Kax|pX{&}{s z7@tn1yEL^7y>Ta-H}Euukor3DquZNC!i;Q*ubNX)T0J0+;)>vRHYAs+!ENKN(&?KZ z2($P5fF^QRsTOyyZCD6V_*`unMF#Ue2k%9seLa-y4LLMl^3(6`-|WtR4lVwt=g~x$#(!Oy2H*(z;63U~6-;q<;$#2zq4es79`V zseJ*zXc_4D&l|0v(7aXPs*Z5Echl80otc%oO-$Ew-AmM)u=#m`yQ`+^%QBp{=$Cef3r$Ly_dt2J7whX4 z#||8NPr8MQ66XmC`6#3JC(k0&&sF-Zd%!`bf`S~4B>uT_!ST6pp9}?QMXL?W!J_Sg z!>ndv4Y1rg)Tu6oesRA-OYwPmc}zJ@#Qt7h9#!p#B~Sq65fJ_(7$jn7MtqSWhZgkL zX}x)@BE~qQuUH0epzE}{SE`=p7<`Cp15|py)%~ByFc6Cs1r6h0%YH(DRr%m&b%fyg z+>O~$9Y#@b*5meth!lpQ^Wt;6ji0^Ou^rC>hvG>}hU4pYj*K#Q^tTG3lbUyn;Jb^K z1V8$C2sz5u0tx@grl_jW1iuRAj$qKlnI;vci|>|`&k5aS2e1-s!SA&3x}V2XX(>$lQ_o^geoi%ly_56|8AcrB7M zWsc5Gpi0`ZZKM6*LQtA`|idd+7PFnb&2P8{h%HiS0@H_|26kXIz>iH1mOJd}cQl(IB{t;re{*Lo+i@MVmI z*q_r)vCr%E!dGBbZMacHU4VedC4H_<#E8&6fTqFw%hDCJ%|$$zm@OvRUFB9IaQhIw z@@YeIH3m`~^#4vcV2yS4QLi5G<767C*}fgHBI~AYuk9-X$>ub&JEi6)4Z~@u`YHQE z%-(#V=DtrKo}6i7J%Cc~`Mys^futF^daTUnR1b!oxPRE|ic-9k(P<~+!SifHJZG;} zgE#baWY{}E&9rf~EhS$RmpGS#zBfU!yYOxEC8CGha4Ermz=xG^^Dl;CpVkwVpJLHo z*HR2IGWE}-aogf?1W0)+mg3mGDUcGMuQ;eStWL!GW(m>QDI)u3JIgwibv4)~FBfB@ z4zqI7el48jg0@W14Qqq_#=$g~T>4VS?stt?YK`xK?#k~qtIk>9{mbK^(E?HClFD;!nGtQ_CITK>wo`P`q{AF3LD5?l900x z5?{f8^+%gjSeiuIIgNJo`q0k)X{D=8EUwG3S44czv&8l-5$ltwF$Emv*Y1#z0nzDY zPAqx8K~fDos$kNnEp9eKEQ$`8sh8FRfX_tbGeARWSJ$zr1Ux0>oX?3m3|>I?uf7EF zed4-&0&2z5>)faNb;8b)v!e;~wbQ<K?;u1x0%i3ajD2K-V>Nr_m>2QX&JUD+4HwwVGI8IL zBhODG8CY1*_bO_Cp!K>G_yl}6dGitl4Qy_N{b~VI_(rA>4%r;7gfeahX(vEU@WlYH z8v(&K^rNsBm8eBm$$froBlCDkV-OPQ19|yMcxvq2csm`T@TY8jcEV*^hFElF$``G;eN6VM#4|w8jR>qkNHuHnUCsb zI`muFJY^qs=Q~b3|2jXKt2Ue|qPG7zLGHAP(Em9>=(9zrySr$NDGn{4!AmJ0kgrS6 zxQ4DhbsORTE6M%W%WDi6MShd_C!>i$+@wFqJIphW9Hv}tE?846GmA!hBf$#_>H&Q^ zf{nJfxStB|V?ib^aFH#P{Ht{SYVUtz5@=Y<{+0mY;7pWmTw%c+3?!%u`)%YIq;T|5othx#8pxo^M^(7`=mx6G8aokS9_ zs4Y;2HQFyoV+vi=G+~fXzC9JEtW0L(&x^i%x+mEKs(FplYBh=ko9+id zUar=EiUE|(p7pN-J7^ky)|qELRW+}pOjorpbq_9=H|B=iu3Pk>xAn=px{PgXit zY=x^cTbp1UtG zr9BBPhHNy@Ys}1<5M6zG@fti!{lml7O~;0%#09qS*VMefB+T3;&{VULGB|95_aOoJ zC_6rMN!N}3 zB+yon{7-7@S~qT4kR3c}g!LyUIlFzy!QSHYI%d|Jed-+8_3_zaS&qM{}B!)Xme) z-|e2)>@sI>o8}N89z1y%#k*psBYtIw5eUARI7f-V&1gDFIH+blz=0*MOhxHrhfy34 z3&m%E*Kl!3pyrp8A8qp?)ybA<-|+EA95muc>p(o<((*7fqkX&?6hZk7xA`0J3gzxQ zJ#TN08Lf9${Q}SlM8!R9K2TVV7apqVx0q1Cw}oA0nDYV|`6MHf^?R68R*K;ARu!3-$)b!J#S=2f|-0E|RkG2e^!D()@t3I}F;= zVn-2)`R4C=(w=h=UDzdN@owf)KFi6)V9Ysy{@m2#_=8_VO$|dXrb|NlgM^qjE!AI1 z;J*u!|NMP_gm#4`(MU;2jjWge8L}KYEChup_2BYlw55%$?H+J{9aE+9%8%X^oUNf# zjxRKD{^8Q1i8Q$0@Md0r6{~-3XE=W&B)xBEa`T@*lB6nH)Cp9W{n%p!y$Ptptt)Bh zl{+C@ltumalVQS))>ekTUxv6euO)g0&unrc;xnhrD>ePlQAM(2)`{ky5?AjD6_vsY zy}1?N(hMuSzhV^AmWv9Pd!;*Fdl%+ZS1(xFI6bft9KW?-4mX3;eEJ^63=vB;Z@mm(jXWg)HnJp|-)W0RA z*$cd8|GsyrFZ1hN>J(1tvJE}q7wWrH_Wi?sjiXh1D@)G8fhp1Oy8x%eRE$%qON=Ec!+hHBNFu#S7kYwC#Ck` zg9LD0sdgt#ybqGaY++#`Qzh;^62}xK^&IwJJMsVZ75@E~0NYa%sbWZfqCkp|S$usM z%hl9s(r~Rx+lhwv*r>v5-0M)k0J!rwA`&?2 z-?*DI%B=y^WBYZ`awjw_r|+3^{8MZDMwg+HNi;m1dx~ZU_0DC?g45aurB%~aYGmfoEM}%# zGBU;K7&AO7>Ak}Ras^DljIdS*uCyTsr<*A%7@yMN3hsE#K5@@YKqHIK%2$!A`a`@x zRU~unE3xiD8C!+~WP*aVQIz^A>FSKiiHD_jdW5ZEy(j9S zAIFrVO@1oiB^gm(=zm)g4_c|9{qOG9f2_iPmZp&`Tn;Jpk~Ew{+B1pflvM17N#;RF zCWkcKG!|>zRg!QrUyb6Fw3cJo+1*&U-M1!VYTZPOCC}6xX~wCCFDY5&_Dk~`cV1*p zUIpH~?zAXJ1#S51g&r}KT4H>bQT$lksR+Q=KX~xbJ zKt>gM3{(y3*O@1J#SaDmp}n-tpsc)n5AgeMA8eA^5S0?by+?w}A((5hB_tE}`Whuo zlL;_)>h0z@{~)>O4IQf=dCl%$;-s%l~y?6QTG+uSh*C%6E)M@ZP7uPsmZALo!x_RU`(R8<-H`BQ;AGWBij?9}>3?k;D40^<-d zWMpV!R#sIQ78ZTn3#zR-dA4>*J_o?;K61YW3`EFWNUbT6GLVq`*!xgnTnIa4l|L$~ z?V@2PHZb_Rcj{p~p?H*kD0L~8VibktIc1F62)^Bgqp`mqHFn|G`aZ1EPXAWbe7kfn zv4!2AouW9pFy}<=gK6!KH4@f~Z;-KqU)mN8r+Z$7FRjprT)KwOiWnQ(ZzRx_$@?`Ngfc?Tz`^#akU@uaL zU+WXdP;O@4--co3$z1n;4|-n}kfNGgHX{!eVYkB4Dbhms3ku2B1KI1iU|^?_LDD*W zLbGWBZ{|k_4wl;Z;<9m+=+If-3JN7GFMFz$%G9v!$Je&HhS16ouo)_OT0jk89I8u7tf+uy zA@)8L4x~z8d=J?AHj39{OJ;%Y^_ba6FmR*Dc5X=gXECEiY^RpjD?NNui;8A)l@(ub zJe*r1)8s&sK_^n|#WE^(a&1)X`_zCr)r3(f%V7XWr?`zIHu|~ zxqTIS&{OJeh&ry7oL9s0-1kM8WooR*v4un7vl{avp&nnRjj-cuy%nb?^U{dngd$ZE z;(QvbZYeH?Y-H9ro$kDbwDT{V;Yk@J^5_aaYij|AU%psBBS4%R5Gxdp!DlW3tEmmF zfygYegPJZK+Sq)d%av5NnSmCr`cG+ZrOJ#Hgm7Oo!dui$3tFAnCc&vH()Jr?K7vJII`)500 zxRj{fQq}o&lIRGi81pZWznC%e2f zE9TN5*k409Y1tODo~c37)0Up!`xl3@=0^d(_BlNzrf&-GJIyQIlx5OGon*~9VdOGc zHL`wDG`a|4DS1!o94YTptfELMd1=&_*_p!T*=XWQ?e-22(MAL&3DmX=b9u{PF81)b zRlugslpo5DM5;%>iUB859b@n|xEh|8q)XAV`VXKIQ`MB*_G~sR0r<{J zTHVfF5MO)rfX9b?Q7M&N|kN*T#+$=cf={f+^{ULlykl@70BuWy2! zbEP$AK01CV`GjR|Zk{2|JfX|_=bgk7faT}sueX|{)=;;nE_chZp}EMCUgk9Q3E-SB z6a2xM^M&DkbrAiv$ohp$t~C7@24$)!+U?8~DeG?=T90c+oJI0(xtHp#ol=ZM$@=lt zs=(aVQSIrKRZ#E+=W=Kn4A7{K#%R;;k38@WdVeI$1DCz-ucnoZA~?;V@uYHVoi8V- zajT76?zFCLJz0D#YdTf%^Ej{KOM;euelgK&zK`+P5gDQ)l&bYk^I8U@Zb+^=cr3RN zy+Q%;c_xVp1CKE)`@nY1I_UjW^$wIzKs@bD937=%{R`s8-Ew{=dyTolOPyM3NlGF) z#@+j6Yd({Fr1$+r`i^n*xd|T2G3FBg$B8P5q(HDW)H&z1G&FEl4eot;ACFw2Vwj zb_^slGqWG1#aVLMUT4T;LZ3g9N)vsTH}EY2U43R)8eu}?*|>_$NMbZAt!F;#?sTZ} z*3IA9kyD5Ww?p@i+_CHA9nB|9R%){McS& zN1IvW86`FZh*#y(SIyAh(ISPO5iv1EU*79fgkgUb#pE?w_W?LjKY=tP7j5?WG}IHX zdp&(lTHf{N(YGHFoRwb9rgENQMoiRkU%$!%7nl`snpc;VBw!rV@&E2PfvgmZtNENU=P^zCRL3 zeWcs!E9-E27QLnZKUxh6bZ}ltG@1IDzswvhK3q7I*;VFQEKB<(I@RWW25MxveHOEm z-GbRqWGeRz)lKua%^3S1o$qXTbYxmxd~%n#bgxSu9p1;ot0T>u3a0&ZG$vW5w)#}k z7(PhHWElX*gkyJKCL2UV+}etv{Z^8n(;bYlJM7T((;FaY<$w|c0Of@qcVt)?<+nM7 zQ|w8Tje%%`&Y-I+_o;cC%TLR<%=RCafmWm+_Rz$H25Kw2N#|}}WZPHJ<*yHeiLzsY z+|f+J_9!I2TA7O7D7iF~I4@;+X zcPQQ6-OUiv-QAr^Hxf$M&?VhSmvkxJ-CY9j5pX=(JFIVGdNsv+`ywIPrxLjrbj`@!86=aQfNOo zO}}r+zWpsc?LvN%>S#4c`;%oY3e&3Xb2X<-(MVRdVZPI$wd-a{O`mB%mFQF#2|G*k z2O;Lpc)* z%I~|jBv~}fBtnnk=)<&St+X6j>{Ko)J|a3!O&vYt;(;i$i3F07h-iz?g`aeYltvWe z3Q&YJ2RkXr)YmydUsJ?1siakI&-@DwQih5Pg@k5~`6*Z%;Y0r5f=r>Y_Jdnf8DsN- zqSgWf2|~b=F|q^Bbz*l5_)Ce@9~`yb8Twh1*uQKALs0E_^#qRHxLQxpV~@=GfZ4-! zpqZ%&1H;QmKDBsidEt@ArUvGs$OVf$8Tnv}0tuLH=a~n;p;;)*wo2EKq44m}~ zv;$TuA+q(V%3QZO0|D=nXoxGQMB5~&6wq2|FVvT8J`C1-ww97HCR!8?%-FU?VW&~R z9wQbdynHhB^!LvRx1oV!Wu_QOR0;ab^$#R61}C`j5oPgu9ipN6cV zzeP4ON8h=Zsf1-Vki~l>&(Xb?QL@A8Pm7VG-DJZTfJQ8y8!PjE7)jl z?F#j=-LXiqhnE-+R|X`aV&h9|wRj6Xcrcap%ZPQH+jfg=b2W)OGhYaDMR5R-S(z|UfOlPR+BR98;&)U~7!7eEV zNP~Ot2Ftf7dHi`Pg4I0mZ%6`FlR3YQK+~m^f55%vN1<(FVOmtLnUKxh@~HKZR0BsO zwtZ|`3nXin;GIUr_=6?}*ZjeLO=C;0ssA6yGE3^8X(4MQ39n9ej_O=@DLxS*qx3m# zBz?&$(7gZ@)s;)EE^XVEbgf`CTXW!(NefD=KC8AaVgl2lItj!q8DFEUp|fYy7buq~ zu#C&Zu^%o-r^c=+LradxBvWRpM)xK7GYCsge*xAjWDybM1vn83n7=;a|NbV66nsoy zLPtqSM9-j=-+|QM&u9NN%Ky9u1H_}{j*E1tJ;RW++HNU>yA+Te0)(Sgu7u`cR6*0SNV(QqHI66CedvfEWEb3FOw%=i9)3mUr5^&NBqI1+gGF+{<` zo4gnUuo^?c5&Ng7Bo7G0meK>t(M5guH6hHNc%hyx1E-K1jSXj0opyxnuFq4`pJsuc6dKE&+u;C6k~#U8Ka0QvkFda**wv{;7dNrtbkhw z{s1Jul4Wd4ZE{8@hnN33LjMBe;kiOnxNXdyoNnB_rSP=mzWFv0{$om#PdtP|K*XnB zH#6#2mq$}u#!szZlp$-XtJa=s&`tJ^r({ia0LGwnxasjWTz3eql2Z4R_zmXxmX-h3 zJEw}ieRRCYJsBULRvKw3)Q;;v95;=k{m0`8dLY|a&`EhIA=!Fi4}JbMNdfr zZhzDB&bP;DQpG@a9eFzN!Xrgf2R7s(l&p-GL7x}x$7U> zNU|bj(UDexLXYp}qv_O09tIDS^ez9Cx2dq0|&RE`;9OkVg zBqUNR_=4)@wNpLTrEVpSX)af6C5>}ZE0I)DTrN4wMKxoh&cBVwQcF{_Im3Y^97ACl zvw*S`T$55|pf7WF%3MIhrCx1Ulb9VJx$A5U`#N0=ckn~rLQPg2>4dJD&=yari9$& zQf_YoSs1PoZ$=nvf1=RbSH{IE1=VnML8dJvpeNcI0Y7Jmc^6{(dbvTe8DlVO0$vs4VIp6YfU`}vGHkGXYtClu)jkG;sv5mFUEk9W#*uUrcr9v%|h z9OE+T$N&O&7$BkVPI~1_ARM4gM*!?jv499P@VVT~5RIn@zP_mm(;%X;kqdyW3yzPE zP5I!~y2*w|b&^He46Du=Zyok3l?q3)wCqrx*;lPCy)C1YP`-cY^`{0c9`l?+8J2$< z9R4s07I*wm-tSef^Dwqh|5V6U%jv%*ts6LK0WO1?B>;Swp>4)D)wGYb`F@_CXW|MdSg|x=Xi7ovH&Pwyqhz8jr8@SgZVJ36@w0528 z_AD!{`99498F2maCpOZA+JhtG1CijYR}`= z>9GdSX4^I(;mnxv8E?9MY;#tH$B>ZuI`GBjy}Of7753WKosOmk(R29(O`%v}b{SI~ zVZo?;?O2TqZFX$O3RQERr;ScjchdXY@TZdfO(HrAqC?asjA`AsT%>4<-sRI)i?Wf> z3!c5`gePk%qAH1uM(=+D*`UYVj^J5w-ejJ<^;LC~0y8SBP@;siQ|kg>t04ef{2&(L9kS`7zo5hzBB377lY4ELrrZd(3&a)6O2x-qNOEcnduC> zv%3pmAHGtvgIYw%{n6%nWx@`9~BP2cEWgnO~GII$`I_Yh{CipzUsR559gFsfMJJc`hYCNN8(S-cr9hD}< z^+x^HLxFm2OWdv>dEHuz1fILiIF;-E1d`Dxoq@>O<1b_PY%TQ(%V{W9ELgH&kJkc) zQU{y6MwO{AwFqVtD(J{iL{IoRq*xL;f`&a0^1eJxrGti4SjY(hZ;?)i%3G7Fy&rBT zvqc~xVZ|((c|oEgK?ywH@}h#em+RQ!GKFON-hbJ-5(`8nHqM94i;pq7q>_5rGs-5j z0Hwi81fhwhH|-YKBO+}+nNGd_P#yf_6g_e2g;F~3n-rdD`HBoX@fHbevO_&qf7c*4 zV(?i)RY5C;Dy$W?zSHzG<-zuktJ2gtZZavf?p-M5bo}4iGypE@Ygn1vN7Q*Y4=%S2 znka~@xp|w}Bqb2`(U(84$OQCwx3QFC_t%R8Jfs=~L`5|cFB{4S5W7FhygQBkM`C7o z;6%mZ2Yq>Um6DDScHGd=(0gWt9M|56CdOE zvY=Ey#&`_^lv>zxR(z#EFUaq9x}W46-D!f-A?cueXV#&Su^7&UOYgynxZeuG*xkAs zRbq_D36X~3!Ox{8hR|z4kGX{-O5v~i1z5yn68T9Kv{AS(8S;RLXQ4ktl)4-QNdLW1 z8|pwsUTT6GX9z2wU=PB}JUD5m`-hN@P;RHXFdsWv@n8#M%42bJ3zA~Djfl{{ZmIlv z*ffjYBnPfr3(!n4DY83dKU7#m#Mf)@8eD4C7fU~?WxBTrY|DM~mK^ZeJu%yvc7lRd zP_rh4Kt*Fv5wgnT4x0f{A&Z;`K_3LeE>Op{8y4(pPvoTZ*`XdltYP+bdzNeHUp%=- zwL=YC($=XFB|$e+E9nb=!B$l@vk-R!Cy4p*NZ2-fIt#XtR1ullQZ6cyqP%zf_Vh-- z-!dJG6?9>ZNxU=b(#iVE52P*lDcSEFrc~HuC)t8AS%_IlpE-O^(ivYhxofZWk>3@& zitNgw&?h}JJZyO>W$HXk3~ek67F_6wKy5)fniDr@_* z${aJtsjQ>~YzVZqm90G99P#Q;x;fxV;o~1bSBK&n{%*U}?doQ?9N$jX;|BTpwcDJ% zUi(Q&!9L#wz6OCnARcA|Zekv%AV34Smb7$2m8B%zw0vpW1Ia!hX_F5aJfqXo1*{!_ z$Ty#6lM zIq$XH1KbQ?ApOikZxCsg7iTBY6~wM^XOG!$p{HWy*H<*x8*8D&4DD)(L|End>v3B3 zZ4+tzAS4?=JQ%P$F_4&U`0*G!9;%FO;O3XAhPk!}>Ski%M6*X@VABRuZ*RD65Rwt0 zrEfIxj!E!o5|HI%q`d=vv@kzQuY9v!uh+~HM)o5PHRy?ZN1R+$3 z*g#~i92rfXhKJFH%5hOX%~rDWhxjcH=l!2XQAU^VqwWeyEtFH5o{X9c(4G1+Vfnco zrEC9!NOoa~AKAC{JF|_OL!$%4H+IoMP_`@#rlA{UaffK^pZIV}}qOl!eNws^o$%_lB^u z)-cY_&d}fEfNIxCz^;IVjf*=2#Pn9eBUA!n7u$X1z(-8Mhix?ue;=IZV@qKT4GUKW za|;WQwl?ka2I^hH%IbJXpLyB15zFMCpN%p~$^ml3(rV>&KFV$JA8ls619B) z{k1IzsJRQAZ1=v}=U;14YIt~<2rP<71Uz8rKzx0?8P_1K3v>#gcFqT2(3r?{#K-5e zKxOGTB69HDGzB$vI1p&c=O_rDWn2Bs1yDHFire~VJXG-OaBEWq(sR!w*qlzHE&|lS z{nPDp*6OVd&Rt38c-)reQ9hf*%CD&0Hd;4tu5P*`&;`6v10mP;T|CP}EtAP(<8f4w zgOI0ivhqB-#g3dz1aLIzh3vtjJznXJEV6}fdm$Sgzxqsw`ohV6?04y#Vr;12n`1kZ zzhV+42I;)t%iv8>3EY7@gpE$K1k=YSp^^%TNX(PR}_sEO?m5!%7h zk`_MJV7Xxe+xo8)NPJrh3j`+XPc+)rb>r#X0wQ2C$FS=`DiHT>z0YnSgUn zKlMA3K>@PgwXDXBD$pq#UlQT4Zb@fFSh&)|F4q%GXzO@MlMXp2pZ1qah8jAA?_7Y( z?3d3wT^2UISF7t1Q?xX(M|a zPCMpwIVY@q+%$rKJjFn##za#1<97XwQUPGo0@zs6-0|^lT#|Yi-Gp~2()>UhdeJ|u zSG@IV_gkc-`C}QvV4%80H<74wcN*_C7>)!?%9$74?xS+=pT7X;o>A;qT2qF< z2&3&H&fEYRR{c_WU_zrTwzz(wFx1g~QV9E_k0saz{5+b_!+`S@d>b4YLdLQRA5;Q` z4tIlT7Ken(q^>Nv>pd zogA`>6j}_9rZ-49ajqYV=#>!}GO54u!69|&eC2(ME)yz1RV?u&s$!^6f3B7zGw`{fqRa zL+LkEokrg^3g=3H2r`VjX^C=S(W% zyt&Px+Kl@xi)%?Cg+D{KI9|niQ725406M+PY626H3XX7q)JW|?`-n~Kl2eUZif=JV947&dhUA~72D!jLUiE3f zZ@md<%GX8DZu7*$dEb8cDi<0mwg$6yXroN`HYxJ0?v-U3%*NrN%~=f~_4uQVY7n-a zXV5UznEMhSF5i}ton3^}j6!-Ue^+1+h*WhM1)A#XujP9ol;OsXiTjWocrxR0Y`SCA z0%hSLw_@K!3`j=fc!yit+7YQNSbqIW*{GcvfgweOyW z`*_f4O_ra7U&9T5fRtE0%uFlqRvYK*=`l9nQQ4t2d$6G1X{g>8{X$%32Z4AGSbT>^ zjeBn`NK>S9Z>@ZKe`d~&wj?pXB@64AQbC!@yFW~uTEkR1p5Aby4SNrYIyY*wg z_FFdx^chg%U$304=K6@IR{~PCga9CvjP~{Ong1D8>%~AuJMVb{KnotuWnvt;7zh~1 z2;X<3?(b%NSH8I+G1a;@=O9SoIF6)#5d&=MkR6YQwq=f9@qc_>nPo?oZZ8jeQ`3d= z2Y@yHHoG5SAj{#=M|WC}stWs~acBOlg^nF|nRxKcdY{U{aql5zsNo7Rg`&HYb+OhdOQMO)XhwqB~FNRL30kU!p7Cbs-IU08QEgS3A$Q;brZF^T=d4EfFk zYx;$h@A35O=!bXHFK<&;t8yJ6BCl3oPc=xevoc!|z!8BWSx}rXesmuh(Vj?g?MN-w zC=XC=&_-d9ZhB)y@In>`y^MltSc@0^aU>(|$6@vm8Zc%FJNqIWGip``0PC2^YhvR# zYumW^m@~yV<|^$*h2G_>H`}bwFd-;go^?H79GXM-$=iP84uF%^NXCF@iIiTxzPx`=wKkECj zsiSZ`uf;Y`W_Ne@DdhkcBzm4x^M*kVod%l}PY2&yufq-bkGz!6lR!6#2oK7(oT6eS zn;tVgy=j3be-bA*Ew+NSbt#*sGyy9bH<^l&M;1WPvsg$2r8QKXI5HS`KoA>$xNMH? zK49G_cuTl?IWEct9eg47=1vHU5)<40hWL*N6GAqE=>w|0_jWD_p6KYoxSJ1+^)uhh zXaG#)$UU!loOYT~Z?j)MWNEoY=4XXnWJ~}Aj>o&miBEdQgN?4ylb9bkzZ0Aq3HLz- zlMoz!Rbhpnp8y8`Ldd(3XZ;(`M3t#R0tNBUn$8c@n*!2e6)^2GLZMHqc)#m*W)!&o zLP36Yf$tlq*$fwt%`D;#duA4VNv`Z)qTOq}nf?7J#b#ERSe~lp7ap$Gv?6MpS=CZJ zqu2`OapBY&YJAGokq@Qyo&M-PyHl@f=EC&!73&Hr)61(md~w7>ZTay1ta(Es)2afx zuRK=VJh^{_wPlpaf5L%n2<R63Z|mpexEopW2iF`kY53^Yt!HM(4y6I1Ur1lk+xq^ ztNtuRo1OVyV|HvohGLX;+om>woKoYYEkkEm`((JQpi*8!Ldw<9es;<$nQw^zYh!v0 z^@PI5OOg0w1&3bphH1I+iy`ZVgt|aLDNCn_AwX+l zYKmYctFKQ?_{mX-DjK9hpD7c}A#!oyoC#UZyKdbpKx{7pLgvQ6z`$CVULp3X;i96F zqSf%5qg%v-{UnO7+tk!#E4k_kUKd>(8w=ix2_ySip?UO8Eyf!zF?I_vc=)sCQ8T0> z75)E03ICfVa~eg9NDIscdF|(K4x8^O@T`!r`(O=E?GQD?`ixRhL4}5hfV8gei{{dW z13M|Cxa@w3EavlI!O3BJ@3%0KX!H{ zz*0(0T9o+IC;l(i?q4{mf4sJ?MTS;2bMj}vlUpSfJE}}Gi8i;hjx~#?pt0nnq>)C*F*|XLaiJ!Z={i(d>Zb%SxX-!q zJyLbSQ7IFD;!tjJ+@_p>hSG)<6#mH3tX85Sf4Ch#Dh( z3jy&$p7>nmLUEEkdOmNV8ojwCb@}tafadL? zL+;QJPi+85JS-X7T@N4yTYqtht(8laz8(>pjpS4b$S6=zwh%CmY_H7CZeH*jJANkN zjvw1b96=i)3{7DatZ)&n*CnKpvqzVd8U#TtF#~oASFU`_7@~uIqh?2RU<;pDL4oAw zG95r>BZv)2mY0>49m&)$o|ytNBNiu;iL)^b?|X3X!-k4tVvtA1#tH!kMpY-JK6K+%8Agm)_^icNBLV59#hWB;!q9sfPo#JjA_FnU%L#=>tW>v>_LqHL)P z@?r^4QxbVwqBq&{OR0;(34STJbWe+MHGNw2SsWg}g-hX#oyDG0Y;?G#VGTi-Y@^8^ zR8$R9ibD1T)h9+KgPqERmPPQRH;2p)^GM{`)3)3XSJvx6Un^5gv~zMj8xn=uqjgY! zs#HwLN@YbaGAfPG81+YV#3@Xjm_^m7y2`#SG+P+LvIG~6bf~LoDyycUV+kZcj$83Acwbd0mG#oF;)lzIe|H^Ot|D0Yskg64V5=AK$0V zw+dm_+*?lpHW2l_X)Tk&agRG^PXo3MA!v~0U}9V~Yrcge`)sS4(D@I85b{i&@~6|I zZY7=5yY7TUm%k4BTL@3Mm|uc_0t+a%YO;GI;NX%;0mm@CtPj>ymv+;yg1#%3Kwnq5 z7XCIGeHz|o?%*Vj@;@Z*ncs)Q%w&$c`-UFxHjWy30WNLIW zFeCvRr?KT>>NG+6@K#!f_H$$c3Lz$Q$Ca42Itbh(cnFaC%O6nPwfKiu_jA9&Q)zfr z#BrgM(x~{pB5Ct}yj2NE{_@3DsDY@gq5=%WOSuR&aIL-kF+Bhzoz-9*ai(i!x*pRP zmndarb=3M7YIPEOa)8432(_i6`?u;bs5 zBSO5PAf!=s&s_H*_M|6&nFw(3U$#eT0Z1w;@gDb$ZL^QvnIwhq@Pe-=D046)iV9B6 zUqwn6Eb~Gt@It?^E{Zt+epA*BE@blyN{3nFNUUPADs!*JA@&eYr-rubsMyLTPDYX{XQ8^T=Dws ze6R6bM>na{Xl#n9NZ1$tmeA2sDz<_BxpIqYN%Z$BIST!Fo;wk+1RxuC=WI^AI&t1j z(!|8XGWZiesCOg4wZlK!>>u8VVAH5Kpcf!9k$8p`j*uZ^IEsskWzjF0NM{Kwz>c3! zQDXCR|u%s>MyWgF@GjzXzAn03T`7Kib?E9y*AdqJSnb ziu-3GFQwdbEqkBwbD7#+pBk$0O(GX}96-LVR6BtA0c%g0VX{cO46=mC>0R(wnLmn< z|0xpqC=&Qbfe8q&_ANfX(<^0~#27)MVL{WcayYcmfRjP)&?ufI*!T@y2t;tH*@-}W zyw-%zV$D3p`ND^Sh>BaiCZhV0OC^LXS7}O}@|Q=Wd&x^4*3?LY5bKw0lH2zi&Z@9% z5^CYs=gS-oKwHzj%(XPxcD>FsDxqI>O-&-RLz7$w%nf{x8Jnu6W-4AcGD^lQ@K1KJ ziWmXM6}h=aw}WX@mc@1PfAR5rQ(Zk&FI%=&br}tM3yDSXKJ|8IPdC<0M-q3hB!7U? zo}9T)JV4vY2iANvevkQ_rEFnF3~sG-msxLu`OSU*dUCmCV)RY{sW7LDWbT<>e6hX2 z#?;t%X!1(6fsY}p)cgXv{Pq}X^Zq~;Ym9b+PRO=sGnTUqSvisc@ag2dVWms6H;v3fY1in!L%44E zBn{XS)7>p#?R|fLqcEFf3v?&I*XpQ$t)%P3#iR}2J0=927#6i-1p{9jSrX?Ymshbw z88uGo_flLO5gV_)5t7;1Q?If;rmy=W%c6-VzI<-*IOq6at$@5!A+tfPi)>bTA>&Jq zyZRi@W>fBoCPeBwktH?kT{GMNc_&Iay*-L(IofqRUFtxAPBd!S*gdhWR~%aEa)vdU zdAP7LP)I_M!8uNrRdwS_t@Tk3%44=p*Gb;#T@c(2&SqWEQ7Ye$ifjra6t!3N*1exG3Vk#Epf%&#Q>CN2HE(HX7|HP)Ctqi?;jeytgCNt}7m&1{!> zieK6~OW(`CXmj%Xqv1L1bLRzMCOL~2VYZz6?!@7%l1#+wA|aUN4@9^C z_W2+C%dQg|`lpKxwjBCDYW}gU#NY+@^oY41zdS!lFAr)Fe{~1t>-@4e$w7S$GQ$M@ zxQrK>4IiVwW?Ith}!G+uWK($gz0+2w(i_Z3A047Fp0ytwD!D z?H-o~;_**(#4~ln>PNbvwwYyFNL2k=f^#TJVm+ldKVW_Vwp^fxgq8yuhLyT^RMiJA zIm57;JPf0CmhUutjDktcBmp)R@#*-ztU*jKWzQeaPGvlCQ5JJ59pwAhSvUJ%qHDSj zUwDTCl3YzSGFU7u0TgQY!3#cS5lV9r&}QGzt$?a!&=OE0w*BgK?xi27CsI|QlPn%= zA0w~;uTC@bXP5jrzq=0A!U!VwbF$YBJaEd=!yQ|wylZK!PB{@r)&w@|)wP@4SCX-J z3NXYg)48C2W0Ht>LU3r5PpcLAY)Zso940#J2m}K5P?re7{+XUM=p)ZUTEeaqY2!To z)4@%)`vt`zpcC zhgvXfu_?rF`!(fEBw-=L?BQvc&)Fmntah!f4_kF?1^N)+k(T*~;%%bX6AJV7X(dqF z$LR76*mf_*u-FP8tzIEjdvJ8YKKgt1hVX(&hxbWdR$v#0mw*H&$s|1yV>^5ipPTvTV4&awty!s4==b^BM-WgZDUNZ!e;-OfKrpmMYTd3(^+~br!W_Yr z;Wa2&lOh8g*mn>gM%du1+Yw#YD>(mMaI`0(6W;m@2ys)rA==f>!v&F%@mq;Lmx6n= z$FaJ%G#!I{Xh+U)hlfK-4i^Xq6DcK!Q`N#)pt$<*3S0KSY(eTwlmFogQc!U#?M=DN zZKB+UnsX(F{BHCgwxAwnYgi@8xt&X*nI*r;rV-+?`s*X_kvAmPwIZoO98-|W@(hnQ zaTFeY)%5V_C1mwaZ%zo~e$jkXGqgUa5XnXk#}g%eh8K8&LCuMTeLakb);8W*Z%p(dQhrf?scQg#S zWZQ6CnL^+jzu&lE6+N^Hsa}JB@tFUus1nZ0L1M3#hB0a2ClNF<1Xa2vEg6RwDATY{61PO<`hmXt8Se#VS-|KMd1_n|9nA(Kyo|2p_%3JLW12KXVvmVIe|NioOy4LP1G+5W_xxP9g;G1c&?kDstS8 z8$6EZckgy;eu^K=4+JQ$*!J#LD3BvD*EZHstZTtW#K9|Ffh9i_?;*8hV>6g9Jz>2C zQgLd&qQF4n{AzGh?YyBLxwT{_(kLdFu&(oidZB2Z2U4_X@@3Vm$?S2a6E|?_z!B4s zOYTpCA!*eV;^l)+qwLeArQq0^%#`xYP{VA|f#w(Mf?O=Ib)VL@#|X>>S~8Ye?dPOq z!UB+4X;{bWn9i5(cQJ8*ed$#ki43^z^kjed;g@l@G=Rz8i!#9hMG|I+QGg)`h9c?p(Ns`*#btQS%f!!e#l{)@#q}lZ97YYR8bnG_1hv`%LSsfRR9BB z2M|PS$`%P^syL3{Cc6DP`gzzF-D-%HeaU_OUkBYb#kabR9;qwnWB(~vM0-gL?e8t3~9_x>WXu1mO-m(K`g1$o<*$O;A2e#Ishj2hh_UB4f6 zt(~lJPdlc?D6bO4V#4z*X?dLR=XpwX;Wu}pt6hAq9ASqZNgvVAHhkl3IQ}9A3tY{j zP!ll7V$g^)7m@qm+FgvOP#tqbSU*1zV_4#iL+Kj2KyQ<&GcEi`nrq8as}MDx={lJH zIA{Iy-Q;hu!rxT(Mw@6}`+3|noSfMx#AUnTHvF_g+3a|;O&|}C+C@h@yTYg_*Z}x1 zueW}O8q?JMNp;|;)-0tcmcfMb;T~w|vPDnshR=12TeM3j9*IlV#UxF8XZIeqP#diB zZ7WHUT{buO(|iQ-500)%jw|ybUR9I*C)c}JQIo&+Bg|47Jd9pA+-LUN7-glDhE%ZBk{lZwb6as=L+}{| zy1qrd$OG+(DT_GN*RRgntD0MZwrkOvtZY1p`L2DD)xLaKcZtZzq+} zGwP|YKDOi7e*Yen({l!nC*cQU*BrS2r_C%pa$XQe2|}aLK!u9osXA@dBYds=<}>B0 z*a99_uw3W7O0xRt^?i6QInF7e{A00^jZvr)M7h{`VFg|!;2(Kv4#s(rM#*xX@sot? zT9P2;WGTb~d0|(K8JS*jX!@yp`I`U+GAv%uuni$gGS2b`;%ggVN*_>v%vY35WR!u7Y?EgLz@SIPjfd% z5*~js8~~>s7)T&SIvW%>nx1l?5eF_BxDa1iQHa2!;a#X(S* zq>{%-s154TR(Z1%k@#~o32_{>m-=h57-K=-K<)yDerUWbfk&Ti!6b>+TD0@SdlPet zK2^iAI9HD3&*6M&SZIoAvg_Ub05K_+V;+?^!N|lEmve7ej^hlZum#@y__^jVUa*-W zTrjYNGi9jFSo_jq;u!8&l~dk0(GmE)>G-93XQnV3gXRI3pEmHviMUU~FS}>lDZngnCpiTmGF=5NApvoX%E-uz46c$KM{clZzO=w{4lu{ z{~B7=dMF1lmxO60mkd3kY0fuuA8H^?;TR1&W0o^bwtG>V{vp~xVW#;i%e~@;x#1&L zQxo_a@Oa`FSgbCBD&QoXlA1aVl!eOxVR>)hir=~MSip#I2(9^p>?L(pP?+p?_xk0V()D7cy(Qin8FGvLBUTBOy(9Q1l~&d(5g?%d3-5 zM*<`0<8E(vWa5+FE&xF{S)6Zy93pdjHE3CBbH=n8+;Yq)Yko06jRg<|1@i`5mX+sa z64y1f{&eUch;>Q4KsL%m7=u5DfIy9k^NSKUu`J#ziadJhby_yZRRKC08kIiyY$yE| zmqJjSRV}IfqFn0(N5Er>WiA$__$ah}=fF06+=KkZ2>Ea#c`Ls|8L9U+x}=#=&kHny z0D4puA~q}QEJBw1{KBY_=FIokXGbboreY-Kb`|vZJmY3j>Shui9$YK_cdyfboaX?T zP5?aD40R2S!U%M)^GC6(Yz?_J#X?V&#`t2#58 zF+kEACiPE?{W0MJArU)nQn)YjdbSeQs z*9{b$91V${U8`@w3q8+`M%|D;yJ?pDLy0Cg;#&aKuJ#UPIvg-*KU8o$G(H9cvO3v6 zD$bFKiM^{pJx08bc#lAYG`L;)_tO`DQ6ma8tMap4MN|@%=pQdzz4XREDB;38j84`j zypG%W+j!?v(e!$|aXKl0U>S|{dVfdFw|kQbizXNT&8)WeRD~0Jv-)-xLV709roodU zi)AVlp)-TnE+Y-yn`@q^epX~EOGa17ntP`=qX@HmD&_?(YsQOvw#$3`n*WbOeGNPh zQ%8i5DJi=6yjvkG?GZ}x={>ZK%lX>CMj|*mlJWzAZ;cc)#o+v2X$gJoHTu-=X*E-G z%6_Tw-18zQ7x$XLqB$k~M>h|n>Vq5V(&Fv+mY+j4sGPNrZLJ*(S#HN>`_pMCBA?j_ zW6V}MvV1JCR5zE2Ncy&v^Vyx#Jv39V)v}LQ6%BRnC2dZ=eJ)%PLr_H!D3TvD_1q$n z?Z)o0hYp|wP`<0Z32Hn%abu_LA#}0D;!q@9x|H6qw}b#0kRWKxq~GJ+v%&gNT}K?Y zNpz_ir+)^@?>G`eMR^&JG`jV^UDGJ8Kz|2xRuGu#NZhTxzG>0x#{DkB*A??TOr4{y zJaoF$6t7vKb?{!AgW;_8h>41YK`s$N zeZDNrFYvTwuN^$f-RT@_^9mgH?mC4f02LD|1Uni{GxwVJ9&ZyDc8m7TD7s_NCXQ|V7ug$%ZsP+m0R1SXbC{|45&1Nw4x`7v{`{3` zy>37tzmzOS=XCOFc_y%4&QL8JPdHBy`A%4Xyf4WQ4pv2!6TS-QBHv_pT+xRcQI5^NjubS@TBbUM8h) zXb>72q?iaiJOnuzbjW{x!NU{`;=hXUk~kFC*rHJOiwANAWNwNbdJj$C(XmZk;~yKW{RL-9%G-;KEO`pR z;WT7vM)D%Eg#(3v2q>CQvV_zha`5*gUsq?a4Of~M$e80|Plxph@Re$L2413)#1P!$ zsiz2KvbphOeqog$Q^K2@|6qYsI>!jk^gV5Ho7c8fb#nT4*%)*I-1EeVdkK*#(Y&nJ zGrhgM%1(f)4W0KA;o-1M&{`wwHO6#n{&#}<0S`NFK!0r=F2dlr=~TPCQD5+s$<9a$ zT?LMqmEhg-)k-=I6H`%j=VLlh{)ucp+SP8X_wf6Qxiy8oNmX?U8<$jek5vj!f}`6* zT^-DZVZ7E8ij-1=vgV8oxrHoXB=L_?{3Q7%n|L9^XK#de(v)!Yf^0U$dcQe1JExxc zzlQl=#(dohEu#5SugqiuUDsP;+3&j5j@ffwur~PJ*I10KOxwP>{uB%`sc*Q_{E~H3 zU?}fa|IEj%obAzltg;)0+}!3jh?nsBzow>qm=k?&F^se912lru14M78;*Fd+n)z%9 zJqV@O-{;aUHVj+I_Qwjs)SDLNkh*|=ax)Q#!kx+H?c{7vqdtuiswf=2-LuD|&juoZ z$2Xko*!0@3r|H^U&4AcQ>AZzT`wR$lWIXv)hK*%%WrEwZCqNp|GY}U_H#^sMR;B7K z0_cx9T_xwdKx#9;#7(P4m_K=Wrq@9DZ^1C9UQGxqVa8&*NW)?0?MJf4pLc zj%PE0K1L}y(`I|X&?nzFpLX=@%uv;|!~^*ub7)BB^6rj06H7hp3#5eWjI(1^F5|;k zGT!l&DTkv2O&;^D#!TB6>gl_m@p-u18YLkoG|_w|z5;Ue)W@Pq39B+Dn=;tDhoQIz z>zT|MZ#A49fQWmCd8j^>i0?od&F1!Y#bV3-=9)7Gd53f)pV8&*L2(XnWLj26M@P@h zeSYtbwez9UM;2ciNQzffV)?FyFO6m}rp1yC^et$IUg~@g5bPcb1|JN0P7`W>4}coW z7R+#HcWyykOUcaa3rn?4nSyCi0Pq#wrs4OQ%7qbhbR*XNQP@}n1S30+hl<=F&42$S z|ND3aZzYRd<>~eOP}jMPYC9>bxHqsrqg|HvvIZ^W#aH`a`~01@q*{oTLVSk zQJbBS2qB4AmN*pF8ORjEV16oXjCB3%6j3S9L;hqcoQ!rD^-KBWT-(N zGWbz-Gt(8vwJIrTwzIz8O$p`I^aJH@dw?{h+g{}S$?(42X{u8H>HXaNya&BydoWvq zQruECLQjkT{f6{0zH4VX=`CeN#x5;Dn~G=pJ)_gAV9_yL!u zsq42ft?EWgC@rRWny*SoN`BVLP`*P*Ku}5IS^tTa7E?QT&79Y*{-UL=jeY{%HViQa zf5*W82KyFcVSISgaGy0cA;AcxMYG^C{hG(i3=Ww-I2hvCeD>AJW~dtSlaen#;V*^0 z-d=IWVWLP!v2gHMF_Dk;Nk!Q2fvB?4NJ%KQ_AHRWvKdDSn7trQsJk7Z+!W95Ur; zXRLP;E7qm<An8ypBiUHu=b~uViBAqRsv$Sm*L@#$ zWLkcB=yhHb&vA6$LCmC@uugqkx$irO)y|L}USWP+2Jf^}7|SC2(3Be{BAblx7Dig$ zVKm1@m|_eK4;M}dJ;emPJXqe&mw1kfj+BG|{N?KEs@p~=t_OXniapR-a@Od`!Y$yZ zXMKD5Zn2dr`tTuqM%`j9K>~)Kj@Hw*<$!zv2lD@Vvv_YHPmR@v7Un+bLD>!q`Uqe< z{thZ)Ad<|2$fBEY_4j9Qsre$KtII#8C6HQMM_9u0E1K_+pgB(1`*?3irefEb-@Ux7Z1N`!n+JYeG|4-G+f|71kn;AI5GXo)9o|V zIkP|Ro#=M)|MB$>?sbK0`f$U>PNN+)Y1lMqY};;(#HV>ULv)iZNu z&V0W)^AGHGU2DJVeV*rjZWQRXJru~pU=J_E8t$ZKOC}8dz!e2OX-ENxa))qWPp$O3 zB)y?Fr{j`Z1>!7JH?v^H-zLFIUT)#v`o+cb_}Wd{=BgxJznFTIy6g;H`&2Ey)5^x{|bNHb30D7A#3HNibqSl%=RZ{2Ct!I{vGj3>c zpb~_~YGbogt9=?B71#gT*8Sr4AdIkX0N5CfwiX4dP%@K6rbETRZ6YM2 zHyroL91c)rUIUidib_fowyFV);6=>EPjQAys%a8KK|gi9^|KoGw=;Ti!>&pHkBc>m z3lb{MVW%aZ3KKZnJzMY%jg3=)zj{eSLqcADzS-r@FtgP%^Ky-Te@--EXa|NYQhtMt zj4B=oPvUomEsacd{yg|rfH>We>fb!YZ#$NM=;w_1g1StGN@m6y_wYbwfVSP96Q!C< z+1RRJn>)Nd%W4&(aFQL7b$r~zKi--&{DC89;wVBbF0jIs!o$O3HuwoQZ6BMGL_Bm_ z0xtlfzhp=(n!7##b4>>LZ+lUDY{v>~@<@ zBTLG?d`&z)>X@=9`A7bu=4I2AyY?UhCX9dgXe3=oqm?fC_?b(0(^jztPm+F@y}`TD zpAI|syl+e%q_$dU{8W_y$Iaf!NkzXgEuwrDf)< zc216jt+T3T=VxVgAgq;p5Ou|*QB4Tt-nX{2p4*vBvmBSSs){9YI3>6$lKa>wk*>wA zCw(O ztSg8S7ZlkfsLQQ%?PA~5Tuj2!@ui=-hW^+|{~xU?5{ln#Qq}n}cB)fGLS{*QXFM`- zrX{r9p8Nsb&`cFHIC?xv*4}xG)AF4_)HhHFv+}_&7S*OWxgR0RAuzRHtYw2)xjolP z8U>1@hF2!hY$YWm4)N~2O~D5B3&Fvn=|-SZe#sGG+1HM0IiX8pwnR_x7|GqH__Rv0 zqSqs9ncT|!aT72xnO^)JxISyQNKkB9Ku#&O1@bkObacMF?DG+)ahQ9kiHkGvJRam< z1IXSK;2b@sDlRQuV7CoU<55*rl?5sko5zXz%0my-9VXVD#e%mPpls)TLUn(+VKd$6 z>e5zX<-*MYT91`?jh>b);l%PUH2$|lP+|tIE;cykRwr&1V*3B~&xQEM@$~~b2=>Ip zM7*ZchdyU?j0toPab)|{^PuF|jr(uGI@&J*!?e7ijw*$-iu3J>y9?Sbgn%?i!Ojle z3vl5JW_`Lc+8Kg&hClW|v=mo?OlFc|0`zAZHJi##xS{pA-1C=0SRXzh6KoItK!*oB z(hcE-nqT0MvGMVzt+FjaT+nEezqHutM&I4}@IoHnIaqZd6qazS=Qf0&cZowaXqeVHanc&!0h`5{6;DM`6!^Q zESK=?ItQeIReU z9HCY5xw*Lk^t2w_lss(LZopJO4TKA;)TgGVUN0I(m%C{my?&$w{)2*{ zVLnses?$QIvhD^ypn@abpH-IvjP}3opaTkJh2VF%x?fs%43=B$$O!1qC~@h4l@z`a zHv_ZzC5)u!>|hEIgTdnt^sUsSq<)Bo~0>gu&x?fHuXsD?bL_g{3>auD*M{+Z?7*Ih8#AF<8l*#Z5!_%04`k9H)d`E=9X#~5m9@2^4&pMSW;U_sxnHm0UqPA5fUetaB3U;5O#K9JIT8~?PS3Ax zAow;Ph)*foW&mf{k5D(YF@Qpn;Ujp(1$_nyn`yV-cW}he@7VZw_ybw%xqCqz{WAdC zu09tT5ut3@0|pEg#9Lcify(ix%#fY3y8AWlaeal&V?V(2E5m$+)BCdof{y>~CI9#9-%R;9Sy;$h6wKrKenl}($U1i_!`BPc z+Tx+8X+*73@%AI~qg#ecLBP>Wvx12fCd>EJW(0vN3=RN;J*=o7&)eM8+YNdLB_=8w zocjep1Oqkw?fU!sm8<}f(HspaCpS*aXZ$cnSIZQH4wAnc``aw`%uexZ#s?s1o>m2k zh>$^}LaSBLt%@XY9x(3TsD#Hw2eN@JIIl*(CNM(jH|A8l{TCvrpudPr_6`ge@PlG8 zDlAM{^y7(Ui!EuU^Rn3yLzIAChTr=LIzN5ryqUvU6ECmK$Dgh&e!Y+t%>8h;CdS5$ zgD@lf5OT3l@7p3YN-VT=Ee7W)BXrO__VOc#**`CIc|9q6H9(=fM|BRm>syQ*tVS3~ z|G!_LUJ5$e_K$$fN!VMoi*#2e4vu#D9gbfmS(tV0u)zwGvoj_4$IXlCig`Ls!8|T! zAeHYcO;*8q40@lx)df0)aGNcfoJom`|3JY0E4!{u?#D0eY2MlL?Z7TAH9H|>Oh!vb zJu~?aP_H`Xe}H;tIR69G3t3v8E$_gA8w~PJqHAAoF}ooYCB&thulOdk;aOibc#+>o zMoFoOM-buA4n(X__oGFS39e=c470E8wv$Ru{3f==gd}H`jJW3&Zxd+o<_Pt<{X-x&9yxf@@ea zkCmV`f;)kbDy2^8<5u^!%dfG>Yh$NHAr;pBF(+rIf>ttwANE7NNjuF}607woaZJLU zdUETx8A6u0SFJpozyY<6P3b0+m8AKRzNR)urpE=rVPEpQr?yC+!dmae+?0%xycGm( z-v1t7pxjgSF0r}sSjld4e&}do*~&VwIz8L%gyNxMm=`;(ptULrzBGJu`9--HptY)1 zQswB%+ukqsq-13m?@r;&mpMV?XlY#JO<83;d`Q%?2jKmvI{&(nG*|gRBGJBF-3I%D%p&g z@5M|}DKrI){|#_PQCx!5-22v ztso-8QK??*FDN9``Yh9V2sU2=c%!sJL%=4whv@S}X~D_)*|sD}lQ1IT0H}1Ya2-mjs*=utjS@D|NiabYfeXjyE;1V=q(BXIwm|j( z2-}jM{ey|d^m2KX7Ih`-5pkxs$P&sm`EmBmNh_c{pFlR5$5S}_yXlSgn_aqwn@l0r zV`LS-p&b%c=61z(=M{%~X7CWazz*h#Y&+jrqw>$Qmo9xBW&=^G(>KnIDo#>(Z{}3D z^!U{=?1Tr0&{mI-?yJ`1bI7I=h~knpy7LH zByb|^dOhUAF27+DXv<(d?3H=kw<+|6>SJYM6davut~e1XjfWRAs4@sHYjRQ9SitO_ zcUZxXZ%5DqkqCaTsoykbrQg3+`=(iFsLZuCGtj%d@JuVuh~n`jEf(4iat~(Umo5*i zO3qkN-*g8ByYy<^%}0 z!`(7DJ-A*6!x_52sE?Bsoko{k^@LOGNkiPYnI?{&MOo&PI9Iw$$xK3&gv<~LHGHnC zba7etRujJKP07zo!?c%|n#v{WXIIjDZ|N`}cCbHQ5YO`%(=`S>wzxcMY$&!DJzYp= zd-lRz?!JhEF4NW_rlB_(QjiU$o0D{Qzw zwdaf(Lh4$0bPpBJkFMiw10U6V%0Hlve}ZjM*pTq38`3JeFT!WF=moS}2kae-ZS}RO z8LoB{TTRaP$nYfEZY*wCM`TOS4-+`kA;hoJ@bFs|y5)-KE=R}d9Aoe3E4DB7^&u*{ z%lAZftd;SJrGJ*b*I+_~D=*35Ssmt)d-LfiluDik2#%#qO{#Qh;6Ag@b)wh!fqw=K zOb!rh5AdJ5-d;T}2^d3HJKPjlj*+-D(ud}LWy=x}=Uoz$nWN* zyH6Ku17h|eM?5<=hijZqlaKr+D|4n`NBB7-v25jUef|rHk0R^-u}AHnK@iRR2uG>^ zMut)vf`o+I^wTx#vF@>}{r0%o4hc3>jQE8XaKG`94_#s$&&&Jx`r1;4K!%R-lS~Y; zprAlGQYd`_$QrguW3|F3khxx`A3}zVMm=ReGJVlVM~#r0nwokJQ{2C#_i+n+1%lqD zb>AMT(&S&dfF;+>OKu2}suo~*_@xnf8yjN`mCeuZ5HMp>7X5^~MFQ606k^=CPu+qh z3+DI>H+E|j>a?shL86x*7i+V|h271`gWtm3u-h5%@vSVwz4R{EAUl)i8vJ`KJaw2g^|jPS`B-WwKGkccp?D*IWD;?R5HZCXcY9xN7tXKDdkk%%oCw56AH+Mqpy4ak|P8Kj-M9~HJgsy5~*}i9A1;g2|0B@Z{ z(b(+()9Vg6)}7gMY=C{+@6$e$n=M&-qDR>3#!j0r^P76hans@z$`j6L!o=<5W>PRW z|C#FW+O%w>syNC0sl(qKfxvWz08fbB{i!X>{zCj{$Dwtrkoi{QC}*gE(t1U?q zP~p?ddF!Cy3@>Sc?>g3f4~HC%PX7q{>@$HToP1Knz5WFpLt^!tc3Fti6enpk##W>( zCbGS_`=o8e(kd2IetJ6sWF^v&-St0qo9KE!Sj?}$Tte=Dod46PpqGPsyk$Z)T4wSH>@1=Stkpi+}Oo9F z0_uh^w_lcH7i(7n`U@Dg*zagYqg{QD$3z6<^nrWhWaI`nL=mD+Uthn@kjOt zaM-%-j~4XuiMNO`Vg6Bemqp-DtPQi0l#XF*ab14{OrEs$t+qS19H^e zC)cPRD&tU(b2vWyUrvmoW95ce1jwro%i=FZlapdT-J@;BNOL&Hoh+7(y8~PPn^TMz ztLP)_b^8vT5d95AeX?VnM%=nW56WO70yI~Z4A(LBX_iCNU+t+yDo88&`yvYDy4`%; z3FeE%UQ-=DdY=6EWN;nK6d9P+NQm=iorlS_`XR`SxL=V{&&}@-vs>Qudd}QX&Al|9 z0&6We3ADYvFu_HtyDF-6)f#wxwrlUalhPMpNSkfZJy9skAWxyzqXH`6f=-n{^g9i|`ySb$Fswo7hOnu<$k7ZljtF%0!ddixH2P8(+h5?jn?~g~$n(vyhTdKTkf; z-hK?dO3fD4%gV?8)<73zBuRB)h0F!<+)!^=U~zg!9HGn}yOs#~e^Q2||^cAgSaXXYBBR%=4mh4UBdNzl=Htey$dV4*2r4n0P zNP1)@YHM|{3Ww+ef6B%#=blP?XtsM>_AH|{`z-?ZtoifK`eL0X%;e9IDC_s)D~?`9 z^nbbg;2?fMqd67U)hUV;_`RY$q-}*lXcIWPO=b%;2g7|jKjOzbShckT;Gi=7H*qhl zcMmJSnD+C%ezF((c3RbI3-_5XAs)MaHj#+69)%>$14aXbM)%uH7gYjcCeP-)qop4If-6@u3_QGHa4ect{Yr5XSK*2*7u#n%Uimdgq#~ID#D5gely~{-lzMOCfBdD&R&&fgWO7Jvp=w)Ye zx5g47hbb|%od$|!u+S@W&2RPUNnyB{8pc=2!{A2-9sbfEyvOPSS-rGxq=p}asR!0Y zS&?Sz?QQnE>)^LM^!UYhW5m$tP9hq4g+w2z`-lAAXvx{+aInYWX%A1)1C5ujB)-t1 zawWvMVGz*Nv=OwD=1?IT811MNQG#L3j0RkMeh!R;UE*dJwFHJ!YYnvteFd3meQ`^s7o~`nLEv8Fle(e zf7`?OISBExfA|pSVfAj{Fo54K?bCh-nP{L947t?$8P8^jXqmh>Vt3&XeVC~iDG*ljp0tC&k6cbM+RS4+YG0~ArXZaDfb z(X`S5(F0n|Q?tQb%cwN065Y-TgmVUy4FgBb#k`*@Ovg1h1Oe@<81 zfM(MgA427|<<$j;Bl-Fo(aafKKl%tfx(tk*Lv9z9rbG?iyM89{eO{XM?ZCN3s4Dl@ zerzQb)-e4@@D-qG=8N}9z}@VYVl-`klOGC(^C(PItKa6>8pv(vc;J9RjYA=;7Szht zs3Ho)nTFOuBl2FuK3rz>B>FAyucrzY4cc@iHUh!#F}T<&E!a0;onDZRwU1>zp)N>I z@xFWvpAV)=L|coS5+XpXg1R=7sNe}`;B;lRAl)oOf33us9+_Yo!+by2;K7~guu)>t z|0b!DMgFYQV9(C=qtK+Ab1{UC>TSy|@J)+E8Pqq4hX{sgPS1a`~;NSy?yCe_iU;i07%{q1o%n!)?CBCnbw5<3h%LBjbaNlQH>jTY_ROy>m|% zlawUt8VUy?Mv>!&_;UG+KCpwP=9ONfVQBM~J;g9YA2L@*GMefk^67R@UP!*=*&Hix z_`ap}kGvzP7QFD_2ulOkZG-7+uCode;^H5|(J&HkfgJwcGFutFYhMy!Y-mZ^j&nnl zAYI&jPv3*IrJ6qdhzJa3#dw4Wl2pac3wm;VG-@3r7{K7^BK9@jsJcM2ZyC03f=c0Aq!XIa~)6Vcga}{y1hvDT?n3ulF zG7v#kVxTdG2Yh;c>j6c8)l@aCoLgo5>WvhcMeL@0sj27f+B@WYSywArTResrT(L@L z^dY3}B|y3`M~0IujlzNb<93Y(+-?9)9}_9Crod0D!_|+hXbhheKli-9sT2x6|K74s zf(MF2$r3-uPj#E4YRp@|UT0v_ljCD^(z$F>!B1GxIH(sM51;P6qp@#+u3v~YhMrqy zWFtDo?F-)Gs7ZGyT#S#$gN<6xiY-rbTH8`-k_6-IyDQ+*2=esfY5432Qm3Zb}N^*Lvq zf?j~_P_~pHAn>l>Q95yhRjJ#mW1IdNoUg@d-QNxaDOb{9gE&_YTENblU=ZiWk0Q5s zxjO`)Q;*y7J}=LHA1D-06@EhwVcZCXb5F@#EjCxtMY5!pblxX)ozX0l?vUu$Z{?Rr zsYpFp$2|pM`ZM@0mGWo=2e!md7d|B{+u}Zt4d8b=>IO?1kCn^mv;PTh0njn~Iy|n27wB0xR>N{hd9KeLg9mTtJNPY@#HsM{yjMMCdL+E} z+{gNNH%zP{x)V3l^<&y{9z|jP)H0(^OM#8bdPo?5cLdo`B!k&Bxhym0!~;c>f{cud z(U`o9Mk{p#jlx3=}H()=gM^?I}q|jDb%r)D1B9SHmG`n-bG)1kC zw?6Me7!~cLqZTJ~Cj*%_)Gcq|4Sysn+<(9g%!z6El+~e#PrKQug;EkS_tTtP!-y#P z(6vFx>)~Ybkn-sFUY}(7t+l?%qq}UxpkKi@+Ro7A&krsY_`!9&S!&N@mT30;AQ`{h z!npXj5C^KJd}{d*zr;08{KErK5;V+ z^vyBf#g`$IeCqhd%Ua4nMbQ4w#SsqKh)86*8+SSKF$;dpQmbf4j2D@9Pb`ls=9($~ z?mX>d)P029Xm6glAFIhc`ehF7s=qbyQI8CRW_C8BHfzj+ocG749_NrM7jF?Rl{vmQ z7(T4H%{_c`pI|mJ<-W{@IBn_7KBxGKk{RREyw3lS2RvW&C=%_89M{QzJ;aj5MB2>-bBC&!F-qT~cGNauBZ6)+*bSXXm~Zt=a-t zAGMjN+0MORkM9C;?@i>hbebz6W1Gc_5vUHG-qpD07@kAU`T19uN#v(9r{`>OI!nCA z3!@3LQ*QH@w5QpKhja6Q}bf!=uOAU!$U`YzZ3pH)?wcu>y5`0IfNqeC1*dlyzohf12dt` z+wU(9P7Pkh?@77dC%$`~n7#7R=mhlvyUVh^xeQ=eHzLopI0Du|Q40e$!M32k98HD# zEKa8~cb(pn@PfO>M(r%P06&9nzWKy??r$9&?Nl&Uacd{SUsCXXc2^yWKLFE+U zQBeggWO7l;v`ZJ0V$a?(`gw_8UjqFL{jt}kKuPZlx?_0 zz2_Hfs)^hKq45tHYCnA!3aa;o%WV#4h|V5PGJPk-<@*e(a zH{!DRnpXWva5|*cI^#Pd3!l4$4iTQkog=hh#lb|Wpn?vp5me{OGBKYag0F58p3T;_ zuM8-l!Iqc^&^`o$K2=C;Jmkyo408KvQ}K8OCc7O={`OGI0_G311nne>pM*kwV@O0X z^1=yD2>dP%DZ2pIUcgIE8WU^{#8BbGcc6d#{FJOXN3lGxNc!o?eAe7{wL1k9>p9JC zXxY_vLZ;oZKr$-|`^prP-UH@AIYtX~=Vj~P?2cmU^y}MU@ka=zwAaykX z31;<@1bx4P`ZU*ibHq(X%28E51pingbYPQn#Y`Mp7qwhdt+%V)0zv{imqp+95{xUw)YBB>DEQ74H z0Q=bIRisV1oU)_zuQZY#RtPKo%F{SSgBG+N!MrbY8pI|lT3QttDloxtw29x8pQ%2B_6 zdI88Pc2j@fy@E?~yD{zGiXfI!R&?%1`Kmj@WUj6Nl6FudFVB}>E&0A9`ofI-p_$r_w8p3|fhPDo^!^CW%8unL3&>QovA%ea zWWpkf86)G?USA9tEExF%6FMb=)A<+h-3w?^G z=j}a%t)>R~yFkThZsUjK*+Pb>&2R_WzJPW-k&0+X6ebR)dx}P;0w%~&a0=k<9W33R zViehlH_5NhOZeB(sD@_dmt-ZQ@9T%$-f>*uzpzC90igE&uv6F(0DuO=6Lap0zIcV# zXfD@7h*JM(z3A}`<@l)2sgw46KkB_wKIry)6EYteT0fSizFk##3zQ5hQ8>M2)g2R- zML~gR)*6RUu38H*r|(V`+}9pT^`F#B``luY_t^HDUAp|GKHD{kWCsT$PAI2j;pg6q z$)R5fi{38g!zT(|_CDM3^9qqD3Xd#-vTt9J8qQ)$2*G@-lqtknsaYp@_I(3njUSKP z#fZ@1`ofGHez4)*ocFZ~8Q2=4`gciVpZ<0W-hgTNW`Y$wmRj9@0Vz>muh8oow--e>6Idwt0x%gb`MtELA z_W}S})+r~k^yllG55cv}QPqaeT}zKVqAdUT7&0)g0~q}C_m3mH7<|h!Bvq@ZXKF{9 z{`HD~cMN&^M-6u~5>)^?_#gr8=8o(#ls|@#+}yK9U*Cu}$#b( zZ>bC>qQXhcI(E~Quki=M6Ph2C50~MTOh}c`iw}fPwjd|_=P&cBDmbjRv+s2lhuRQ! zI7>&T?n2+#dehsl^^is6HiO*69>E_u4t!&tCgL4fn^=x#*%e@SrKZcwc0yx2Y~_o= zm~opE;Rma(0z_gU4kqJ3KM_ZiKs7Pm#0r^DWhi~VW-qN*ZvscD@E=6|`hOg5b+E@= zm4Ob4Nq5kH->Ls9{+$pPH(kt^86Ou12OA6cm?Us=UJFbZGLn$^US3|B0`%j8 zfk!oy)@&PO{nm(Nu` zc!~Bg@E75;p@k1&rPX=OETt-4^9AwyWnxqfLd|UXD8tvi#l^Cfh3)e|UnUINlrah2 ziO|-j2Cw;+ezJFAHeCYN#=ly$bi1~f{J+o2YZ1%zy5@dwc0?u|>uPAKxdd?#j*b~U8s#U{lHPQ~ zXxN3k%yzIwY{L+sI+L97HAH(~Fm+PG{>BSD9uIiCg7`z_umCsy>D6#%WNX9yYL#v8 z`x#f2lr4+PL;&sMkqsREj5nj&HJb%B<2UQ`=b(KOzVg{WDZ_G#x>Zn` zt8^$kLw;S?p=I;9n-6=vZ|Gnr+lHl;v}h2($N#4osK*vCF?NCLvw#`6$B2N`xOZ@c z7K=dq9&OI10*g4vm6Q?ysFbC)lgX^?o-eM33#qh2SI zZr{uz&`(36;lBr7CldIRK|_1%R5j9EadgNp>?bok$;k(~(MltV0PuoX3g<8FYx zPnPTjwcH2+6&`M8db%Vh#}`Nk68&mCnuAUzS|YD0RI9P#=vhbimm7nN0I5D^W^F_d z_MfZSQ#C^!U@x55l6WWD8nBUk&84+?UO-k~C-ROqt;_+RdOO5`F=EmG(_l0W1fhrE zhqJQZ+=5x4*P7s4?MQskxomWN(v^WPS&wlX^G^{y37K-dM!53{>Q8zYEB-6<)QdD{7j!74UFu+o(POX+ z@iod6Fv+oplUSjY%c`(X_z4F8gICbjra}AhUkAVcR}1`4(E=_OB-9ay0XG!6(MFw7 zxa2gi(~+`9jUEJ$gv9R_hnpP#M;ls8TYGqArQITAxcN59+1%WcX^E>Q-4Gm+t7+32 z^f$Z%uwY6(U&>mq2J&R^S!iMb4xzV47;(H&k#wrGnzj@6n%llM>!8oN+rFK5*7v`> zTFWFBItIY7fD_={0c4yg)hf@SYun~ilkAuGov)7s4K^EH)=&Q@^A_|68gg*-w^l9D z?7Ef|@6>jw>-PJE^Yby~n>o21A_9T7I7#xAqH(aXy}d(jzt!muJ_di=rTHaQh5WrN zJE@L{w4m(SBr5R5UAX4}YFNzNcz$kZC*i zSh>SyfYIvqzU=!cVWrH@(XO1ecdl~X;RdtOh0$zMr_|v>^xf6`#>3r`LqTO_<$@Q$ zowy8&k-?;pCLxy)NTEZ&f~K$+Oz|LYnRpghZ@2oT>i#%f{F#XO2b6$-Kp;+qxmR+3 zhHkI(sgfK|;+GaZ_%-`ql}(6T>Y*_)@=jhWUn}nK*|FWnv+9bBfD|7M8d}=?x7Ry@ z86ln~At51ZX6AxH@Bfp9ALRmRg`8;V3zyTMNjR$&n{S)Y)teK&(H-7R ze@Ih4%tNDP)vPwJXrX}DN<4ooxw7o2tTZF;=f_)7U;dw>s{F7p4RcG&zoM!#PY)+T zH)4gD`9I=?<3+}ttLvr9C#I&VUM@|?C7q42cgVo`~fkZ$qm$QcAWjjq{oU7KIz76E|hklPOpAW2C{N5mW5Z@3yvCWx+rzE}TiTk-!W;aTAeeuhl$jit9ITJR=Fxu!}=>DV=E zYb15t95>oL_Af21{hEp`a`bEwvGBV&-YclBDOM72aEqczYkd%NQ2DM)47Yg7@q244 z7o!|tqn23%Qqcs(c~yHS92}foYX2B%Ad0rZZd;UwhUTbWKDwF)XyhG_%!-}UuW_=y zas{cJR?PGPKVRA6jh8c*ox?*3&dex)iAoEoGNOln{R-Fdc1uKXfHlPKb0Oq*jmdJ` zBev|dB=_;*Yr9*20)*_UjaoW7vH+(>%?R%6nK@v_oDjzpt6I^rRP*$g8y**DFgI`2 zye10>az1AG>?FIzb!q`Qdw^{-f$7dr?DZhux)cNi#5ExDP*PS-Fo)6+fuo0sjsq{>d}qS6jCB zsvva1_Lt|YiR;^y@;S!9RKZptL5h|_L}XxepRDcm(I^a0PzA7d^VwrvGK$*0>+Vkb z%P4TFXlhFOE1O=fH4NblW(6)2R-@5g7Hd!&0+AwM7DxV<#aH%_-v`8L{Bm$88YJ?N zo@4X=Yfp19LR(GF$H(W~U0%#$v7Qg`I0jmNw4nk<5weY_SG0f=ivCE%@$U?ut1&jf z)#jyLQ+o+_9XdlhlZt9SS&K)z<5e%&;ybNQpAGTsv5$tIT*pxu(TSU952iRyxHqw$Oa^&aa4&^K(w zNWB#T%b9csr3^V>B}0}?<_uvN05krpOod)aTAG=F?8_#T$rKPWCoGlx#VB8pyc6I# zIh|Dl41QMMRpDsvOVj38+jTh(Bi2Z~uW3w7DAZ8G-@ii>;PMs(AFcKdT_UfkFej-Y$hFGE%d#sp0WA#4#9GYBYvfcYWgnT*~hh3=Hzh(o<6cn^=~&wfU4$NL2vmGD>`W zeY{2r!Y2<4A%a%7RvI2dJ9BIi3K&4bO}l$aRU8BDbBSO}rh2F7A;sl%pg#D^sb*qr zC9;k+aq{nU(k;~Z=j3SA>*zn#a#(yU5gJF!v$gZ05&fNFKJfJ)l~+mvoDrRmaXg8U zS^FE2)Abwm(0UPWJ36?HaC;G)w^bg1OgYu^MSZGX8kdT_5IyX-o#FUI2$=Gd+ypVW zFX&J330TRK#l$|-`Hu9(e48%K(OI==E+Fmz*RCqdiNg(~uf2tF?ACTT=m8!Lmvu`8aDpMB%K3b)x z3%Wj;02R=h6)WOGHhC zwtvY&oEtR;SY_;vxB+syIo1eIo9>qn9u*mR9oBm9{4U^#6f~QyRXU8vGfGEp_mD+D z4FPdy_B&Tb?tqmseCUFH!xS`Z_NcViG==L5i8LX`nv0|3WIyVg2v34t7AiaAg?Y?pdZz`?l` zW0!)AduonuOh&I91gPRi2A6LhH9V{7ruSjY%FOkJ5Mt%f#O}?^_X|!zs^zNP)s+$( zx(-(9<~XPI_R+sU6te*d#ATm012?7OM zRjaCab)ENxgLICGZa=q*%n7+t1#a}YehxLp?X|;IAz>iFm4fupgN8kd1}c*e6R1zi zw$fZtQ?uAhB^bul$JD<@nPHuOQqJ5w%~?EA1g2TRr*kvL1D{exhKh9L)E?5{mH zyI%C>$E(&mj+aO&u93MkRz4cFWg6JP?v5S3*FaiN!{^r!cqH?qZo zzh979Ch&b4MfqdgBf&`)yxj7qLRZr5S(e$@8%sn6PWk1-pYq)6KVe70zU+hWXuv_2)pUJN*$WJ*CN2wUQ91^B49Ya+k94&`1Ef!0B z6OFuW94uDt9)!pz1RJtgFO>Z7WD)8qvx6=#o0*wWfujI4f{p%b(gY*#ASckp0WTuO z={|L)gz~zv$Sd{bW{U;uwv*pdbSSM*6rza!@=8Mi7eKMBaT!wGeYyG_POnb2=Ea6Y zcK*TbcW8I194-!;`>zbozy2eDUm54ktda`xxu{={?JXc|yh5-t+5HBXVJ$e|mT|Fv zUtn2F^K%)}c3G?JP}U1<{~h-0uxZ7*FoejxMUz8{fFTd7J|wbrl~AczR%On*%`E8B zylys_=gH2B?0X7@d=;6C6hJ`V-Pxfs;=(8(`}u*KRW-XBW}_F}%&5}j#IX^`=NwF|Xh@UYik;MaE$>36q6ae9`02-xpO7R(yB*R_E*L2Q8xx5>jbJenivvTpjxr6v_NL zD?eW`a0>rG)Y=j|=5V=yM#;x|*+xvJ>E!8@Z(P;)zNDqDHrVlhcA0&$%7O7^`?Ct9$zpRgE zAtym|d?8W4Kq`FZxqI$a1jhawr_6*tVja?LaOA0i=n4cG0upFQ3K9wuqe`f%`_7m!E{uGN;$hgf*?Djmu%E_Cr`EeqIz__vtHn^2m~_ zLXtvxU)+|nATHCY+No8hIj=@~$$KGmB>YNbp48yzt75_1X#tOi721;8w#1KM7~D3X z))nP>Jy&dZ$@4MH586t1{m&K;;-3&we}JzY`|TDZS!xgubcK5q2}cu!_)nBiHKqI) z;XmhHy{@OkjMaXo&&OJ=KyQ{}5}~i>>seJA;m}qx*xLdyh`kGQf>bKk@l8Rai!Z9XhI0?PADK)kl^kR+#$g|Sa5fD z3m!DM1b26Lhv4oK+zOYs=|1P)(|x-8-SOVfJvM`?`gE-|=b96N9;Q7gyMHImQ)VZ{ zk>KIbQZ}#QWP8jhEA$c{c@3HGKFGEv*^<8OZ7VEVyWrRt&6MSd7dvQ~DWVrQfPd}S zv4>+6BWH#*j(y~@D7rcC{N?F2Yy=?=g0(whtdKO!r=4Qv;+^IL{M`@jr!5!z>bRor zPMEk$nje-ph`4`vhY_NXzB1i_)FYq@f2SQUnu?mz)EaFLC-w$PHtbPi?a1U!BmFl< z4~kFAv}Dj1YpWVOvvuuY=Zp;N&||OAcRYV~(jHjr&`v_icT< zwfEMs=mAT&k`yVq8^^<&xr;M7m+u6>vu`SfMUV?(p(6h4)Dl=ORtM<6$v*r(e>tK{d1%Ign_~19Kq<5pNw64r8Y|OjSv!JjVsI0JS@0YJ4kevvOiDsy) z*N%^S2}n3A16ZoY=jToALAR$+r%r{#apz#LVgS$x0+&umnjdK0nY^mi&S1;ou&RlP zfzg*ydmvec_(<=E)b?{4M2)E!Vc^! z7@2T2O1HKg$*?BgA)dR`ii5L$-3d7W#4($GI?~MN1>+YRe3!O)#i$yk;?7FRc855( zYsU|+IYcqjP3paca%$0@Tt0#>2IaY;=&tT4DK0xg0~*>A_3Ew_?Fkz>{+|>i-kLk# zp|B2rwag=zW@ihJ&a}^~34;$y#m+{{KHNr8PaJAB=ia(kli^4LyN@*4V7M+<**cYI zB)Wa@Ib-MOau#_zK}RSI#5M>9)vQDA>&^^`=ehhg9yIde^Fy)G?*D@+{Gl4vHille z6}NJd`Nh2}xT(n|ku%o*1*ZMQ*`W4$$B8^gs0W3CKE`-2;Zp~Ew&f}_x-du@_9kqB zU0Iw{G+KPyNP+`2_l45^te>2!1Ho>4ERCcC?aY=$7m0Y_?N5X=Vq^o}#SC%}J5ew0 z-PL(Kokkc{FzADTeNjb#wLVY=q7wRM4ILaDO!WgxsaRby(_BNe1)1O_DdKSm|4qr( zXqnQ}cf-dLZmP)Zg-LoJm%9Ei^mKKTLH7OzV_et0{a(|#U8^dArVK*K0MyWhd7c-- zP0azQRj)f^@@ET&YFUvcSR-l=0d0|wA71WMmVK)9>`jS z-$DPpM82pu4vj$Uy4s#+y@dJo;~F<3*{C@(lN_qh!sKjDj=^gL^+YazsKD@*NRdP` zQYQ@LG9l)7Fa{4_Tx=W@iC%20Eb3!sLB6rD_|BGS)})3ZtuI zrAE%usLXe-<;6{CTtn-kEbFi_52gcg_La)w@jmB~h0!f4Quah?okg$z<$OU!zd!)d zhhtzWR?u<>VIHzjxjEa|Bs2OQtfckc1it5}kW6MwxW0CxYG%h0UH88Y0}%saCEChR zk%ECpl+8w;Kc|1S@db5{*%DVEenNM0RS%zJN;v0TzN;_+y-eOUa%VhZ(Cd*C7Y|m8 z3V&cPmtz+A%#P|`Bw(%4OoS}0rNv9`zG9;>tp3i`49zPFJ5@>$SCG-#0&=H1Pl2dN zin3=EM*ge2lQ}|A!YmvLtLdoW%>h2D?3x}}XLYsO+l>t9hzuZVGira7aN;ugR8^ZO zfc8M)De6e_d5_J1K;B?`Dhtuw;9f;{g54+f%?5U_4Vr`do8oOw{KE(4nX#T9=j)Vq zRjoR%?V9M$spc2^c+iv&ce;rV#>6R2W<{JxucS{~Ox#ta9*z1wnrs^(2+#iw_~3#z zTS2x|R#{bLNMU#QHuPN$DNl1DO)>SET?jkD%R-&%RW*oLVt~{zxpTNee`d8ClGRIr z1Y#Vi&!7)t#Y>Hj$h!z+MblpEu|586UMN;S%G6#le&E7G3_Z>H7cR;kA#&BVD#pue zD9i{1d)oe`6_x#2pAZW1R#V33^Rhbe!!x>}k(FhYWA(KL-E~Lx*W6#ZLZP)@DRHyU zh(nWGSXv%_S1+tJ7kB>m?fqX%!@He?{;f_m3N&IIEvdiAQJ{GAyN^ajd5MZzS_Fr4 zm7?{pGC=>9ultq$XBrzhG^s+RW+4FX zq<7VDfb(8POW?45r)k}d`7D<`-i@s-MIsWqYmP2j-2~JpY3fXgZ-kwa%pHMtb)eZi zVNS2#uxD&i5^b0Oo)DcscbUOES=05+$6~PYAr9x8gHv|hv<|Pn`D(*M741?<(I%u@ zPFWp({X-7D!&$2aq+2FgXDEEW(YG4s#DAU*1nQTtg)C)mu1gJt+Vouh>`|^x)WWn{ zJpG*6MDi1V$1n4d9&(lUH9C&=P8iViETaR~`Uf!Z!sggU3yyfM7dubJ%sx#n#YownD_?lJZBJpiL>I5{it+k zYHa+=+Kk=-0Mo_+Q*0q153HQibaKL3n^Hf$xFDq%Zf+hfU1T#aEqzF+AzAR1ZChE< zwogn;lf}o!SJ2RqvaqmllLcRt;DnCXH#Eu}#JnB2tsgRTd=?~ZFEKH(+~2k4_E4i> znX39||3NQ8?}N1)4|Ie4^5p_^2;!ejc7pdoYY`9nG$$h z6RB0`!!|!$s$*bd=U#ShK!HC_Yw-0P_B-~zd!Z*LFOQxAplJi_?9ONU14Bck8>Vjb zhA6HA^wli(at2D85f%?5&HZ#k(PuRm%*l0i9P;;}CbmT~M)R05RLw2$#6Hh+{2woWe=G-cmpS04m;6^* z!&mTy%ZEEnR47BKpYZ5oiWndD5|{NLpwP%2={So_vl5H<57yCfaWj;gmgjq%6EY8H;7J^~2nH!T-qOrW}IIzV5c+btcy zdA)vgB=d~yy@rAsABaUpZIb!y#6MdC90MWCZs#;_SWGaMTua?=#5FWD6p{dxlB#J2 zZ~*|sksl=T!>m5T;9u@$c`By90F39ddkH-S!ghdp_;Gs+b+p5)*62VJh>{19IzdoFJH66zc5TaL*VpC z{ZO|p{AWN2ha0$|aJi=)uI#R@$YVX8cv-eUa`s4$4s!kT%K6!(y(O&c>+6d3K0X3T zTRKDw0P^9gMJ;Er=Fb4o^3`gO7A)-3T#uYbkZlm#(O>sK_%;9Jrj|nq_zH-L8K0e= z68T+pSoZ<=)-Pc6NO9-@Eec6`tAuv}%CC!?jCD%WXMz3yNhEUR$s?a}SzN)Td& z2qu2>=tx9MD-|eD5ZW@{7EQ&+Edi<^&6Ny+M<_I@2ov%3TMd?|}y`;qx3 z?2F<@*6R7ZXv+BX>C-MC-L4yv$?~iwE1-psBMzmW`3~~5+BHF9;zH*z^zI7jB7N0K zdtiBX!U{sUHL9|cA~53nxf3o2S27jjetvezaGf}K>3NtDyPZJAvZ8pS{F>12DY;o; z(AaL;$NnvhWmCXI@A#4Pf4uwsF`{_KyL$hH{a+3E^^+ftC{%=FsSD?jGpfYXu{qVl z9t+j&DAS}uq>iJzlP~{jwob(TzV_306P^~R!-SDW%dMv148TDh3csSr!>EIM@Jek7 zqFZglBdl0?op1+Mxonc#HX!L>xK-Z5W7GZsblQ}fQIO!VQ@@3fvD%lx9_Y1`j`(FygCui}3{seR&8(59Dzor%Wy1mi!(EJYQs;!QRz7 zq1Af5@UPU*V+_Ym&k;JR-~PFP(YA^jS*GUO+aSwhzo(W@WJ_2bgLzTlVQyZ0=E8o+ z+{_kay#*+;i35u88K<<*T$OL%(3U+>0b58hXXk`BuK^h;8E4-`mwodAbP^hxrO%M# zZ(L8i<73A40dj+hvZ`vm+S=o@G#Tf~Y8_C|nu5O}bRmIpe{G5CH}!0KqK62-FVTVI z8}d$Uy~XV&tV*|g_*qgf4}`vx>Kg7)*PCmt=@cfF#+zctiT~_Z!*iB}6Mr}!c>u(O zFj-K?IbB^s_A=yB3F)C^b(hfc0-`t3Nr6n5M@Mj~x!~iYLy4$jL6z* zAI=5WH;N)d2-ywazL-#0PA4+C{oz<{7sn6UPv?6+m@mLuyU4Ge}TOq^UE2bV^g^7PY`VQs){kP~^)GTP07sXS-HDzhBqiO@7+wiz4a9 zsx+CRVm6tC0VHZwYRsI=T{N#V)CTr_oB2Wo^$fmz(H%|Y8R*OsjiAS@0GvZTw+1i= zux--LZa>R@Q>|Q<>;G8|>(rTO%a7BNoSa-`Vy|EBgPvuJLwZR(-eG7AfwaS_Q;J5A z7TsohW;YVpkx>cAPEF#>%{55tjfgUO+zS>Q>?vxhWW9WK>x({836LEmS52Mw@_(5W z8BaVG58Mn}5x8e0E5Jig`;^s+0c2Y1r-!So557>JQHK?r3JRLi-!<o!x!gkqW zKfhony=lg|u{f7_#s7@4j5!yW^p+&W^3(-unHxMvm4=zPz0Eu5Nm8i$2aG?o9Rdl% z>NMJ_`-ehxuIwR)LYN}e%7AYr#nGF~p?uvvfr!ct+=rxFeE^m}5YhJhsWn^(2)aBx5FNs%{(zB5rV+$C9# zWNz+`7S>SH1FjCTDYnb6m3FmUehGtBUG-$6hm&fJ2o+P&3HGBz-{oPKnl3e@O{vw7 z)3us)?T%l`F*tcIUQU zdYbA&_s%7=R!XeZYb(q6qBA{Mg&RKac$)ebNM8f}soi^c4kzi{B+g5)AGy50*b@HZ0tDPjja5~?1(->{d%-7{@Usq@MJMq|L3H+HvGl0gwuS!R_mk&SA~Ui;EhRmVUHzjce>0y>!D# ze*4_qi&2R#ivF@c=PPo*%3M%x4vO#20ZgpwFJB^Zwiy;ws4!l7Ty}YJPFH_iC}2IS z2;nolU#hUq^IaTTw;u`@EZo$lqsRR;I1v7AAesbj1}`a_gJ$Xhf4_cdyJ=}!UUBq; za7iUq>fqO++@=-(g2ZzN_0hx2l-A$hIhO*@5%-8cAK=w7J+DHa4&z4uoXEwbyx8fb zHNAFw{LmCcVqmDbM__<0D#265i~%tf;1xtNwXM`I@DIAR{M96K1lE4ZBBVQF)r}Js zpZ~U4^1n5NbOA_GB3J(tal`-1A9JFvTJ;czE97#$GyTWh{9kneDj~1)Pa*7|i2Q!4 z{vS#dc@~gDpnMBQsplU0qQZCq58_u)b<$@}+% z8t9b2F~}7-Uxt$zSz6M0x>BVSA^e?c`SWlTV0%koivqbyEWORyrnuE2t^D@ZmcLfB ziw*z<<`iU0J^ui?UyuzBhhG6&I@$rwE z;BviQIXSt{-}uGEU=rCZEh=Q-ew)-->9*lv#P;^~*&1^^!1%?g7vC{mHjVchpb}EK zQsK(}(+GN-@blY*EBGdnN@4(7_PUThKx0E~A5gxCN=ZS)vP?-y(J?pIEcec?{quJG z!#bS$#vhzY0z~^(Ha3i|)&OO46-2E2{3qTEvHUVJNPCm{S=y-po0ij1wiXap-W%K! z`o}Nk3H350m4rsUMhNf@QG}sJ@-^7&t``J>K##apR5w)4dVuZ(fqz(-biL@dE3@%W zp-?V)3+^V|gD*tc>_rrAhOz5g2{``8Nl936G*KJMmesLxvOZm|P|T zqL;yde^!CR7d&x)aR@;CnBDf>8~I$`a3J&(@_%5M8xtZTk4q}`h?hJRG#Uch%m z=y-g9ruTewL+AO51yCow)T*m0T2E%Q8*B+8w5#FXSBq?Mx;Qzl0{JZI>6WII7zqQ> zi6ctiz(5C}e+~$@!(qLc+b9MKm#a1m|F|6=ogt~el00#PY9GI{SuO(uWCOO;?V-3=V_-P2XZ@?_y<{FHw~zx*9iZR3mJj}0bKQrZqIp)U1Hv}t_2 z-asac1j=i;X@I97aK1`5Rk4~2SOcj>Gkpg>7M+$wt5ePhsJE zpr~SXe{J1#wd^^i5r8h0dXMvl%>qGieBB%RNVL`CL4hK3b~eNbU=+p#4giYL8QlJ6 zW<_hie&uru=<3m}`eT1-TWR%v!^*&bYT0sw1?b2#=mp5YIG=Xovb$bVKg$sheLsH* z$g-CkjkB%p`0YDYCN}GoXw(bnwfJssV$3cqYyeuTB$f#eR84rbKmd&aenP3pH+O>G zYGQ_b!))XQKnivB^%=H1BS9e{?=LkehS`6L{NvK!lWlAA`8Z;_VZ{QPcmlHH3U&y~ z@DNNiV23Bo=NV-92%4!f5~jIO9ZUgIv|m}0IL;N_ap6e-;%e{RajWdQC^`TnQy}2l zkb68jH@6_Bv2$^~KSt_&UNE{qZH`oqeKjMnXDwD)t4ETq837yH@cMSTH$yP+6mW~6 zY~L6cCC~71CnP&4^E&l>x(Yh;(;?ahGQf_k2;Q$-gYhK9>ye2*w#9(-X#V+kChd=- zgFmxZsM_^9{9q+O&KKjoF)AJ6RSVUofk564^6+TEVUch|eAfD2v)R&si4jY8JYK%l z;7s;&2lhAFWfasO&XYesOiDq-(uP|-!Y}V4!@$r>hI)bt@$gJ*9@ErMmGjYr?(WzW zf@rluD}zk-Cdn0eLQs`UNF&SWKW(X(&HnmA7J{l~M2n2_O-V_)DZCy5gaAUKX^O)mDIp(Q=VxwDqIiO4^$fs!EVEU{(FN<$`vABe z<%hy|!m$8E+?2T2^Z z;QB~Fh9^z#(=57xbh$k61{B!isJ?Rs#_4XzDPYrSF>}H0y!|y(T6$Z3uN`BZV#yv@ zLKT+6?fhxwU^0IKhqVX`kY-o-9`{1abSzsETPl$mHCbCIDKLUewb^CaL|Tmi#-cQZ z&2$j~r*rpChVlM{wrY4bUu~LgMl<}6muFr-q(rT}Ry6D))J#u@ zSgpm97|u;l6HQ5cU1n7kbFAPGz?rmrzU6Yh5QpgtGdDN4g3V^n8?Epd2Ja*RYVAeI(Fp!G6djVZm zsv9UnrQe3*FbMc>G43E{CKbk=L9A(z0T<4GH!2PDwAagr{z0-hkNUKdv(OT zfccKw4=EDRB(DI$$A{{jdq!ZF3If?f`!WU41Su8u_)J${cC*C-RQWmF@07K^=ck3p zS}al^j2oDEOsOpYzt35W&kHX1NfSUyeQl)jV=mBfP$+!{B%*JoFg!pUHl*Q%d=?D7 zV#Ym`pz(WLS1bi`(=} zYyXQu5EI}3+)nJM|m!whzKUmn4n z$L`IF*gRh3adXU9nqHEHuW@)t)sparwIf|AjG;+0-R0C%Wocx(R#>oZ!kyWG#*JtE ztCpE`)8ZIWTdx8W<)3rp-vW0z5*RDeA86-48^)Ri-mY$#jMQ z8K%w!T=3Wccq4y3T59xN*xK6CdAJ4FIUFXoJSwHs&DMXuJW)-!?X=_O`poH&vJ|E{ z?s_o+?F_9eF-v;DQ7fyh6osyhO$a%Wfd8gSP(TFY84uK|nfchA>&-T#Sv>p*cf;Y*@rk*Y+M#$}@yf?N zr;_4M>86sQCWI>b4MqDmIJH)SQ5AcSIvTZcb;)tT(Wi08e3plF-`OEs3ArN38nY%1 zYEQ3v&K(_miWTv}H)vr@hmFIvkin-eN55tft{g3t^pAY-JlB>-XVy+z%*WGMpXRO! zj@a>YQ<+L;Lc6`m^YCYeA0E<`G&1zcBJkXnlE;d)H1E-zk(_T{W4ykWofvoRH zOFG(@bq+N)P%*5X7YFJHLiBqny{ttDIdyT;#p24LS;*AxMBME{#^P1QaMqbZswz4T z7UvOM712UFHmAUNbH{87^JpNJ>*aF$h{t0srD)OH zbgury##+uDZ`z(X;{dAV2{5S-OzYTpyyEZjhqN!zevxA3eC_{U1+>zrkyoMu&kjaf;F&EPezMZ>B0Ha)Tw&fHX=j0p=mcS0|}lb zs_(3RifCLmI6*I+@Om5A#8ob~S0Vnog z_x0noOzrn8Ojy!B`}Gr*mcICgv^tMDR*F3tD?>}B<~%v!5tkOP2$e;f${lK3T$Udm z%6`qhF5#3GjMh=2g|)O?vO7S9GFE@6E6X*+W)>~S)%xZb*dQ|8CQS(0=i96DrZKM5CNdo z7l?vV{Cm-UJGm7wy^D&dD+Rf@xJdZ;w3}})4?}?VXD3(J&hhcnxL^|OPkQA>E4otq zV0I7QOL+eVIG@TebS0ttph{AavgXz;!7B4Hs4G7#OvmKI2% zis1F7-pEKT3JEKi>{17jf-za(o;qRof59mX(Kd~at>CKcs?MA{CQPu2c+yW8_*pZs zB#O0aMo1_+5-p@wS8k9Jbg@z z%d&=njeNA3VXp~pt(yas+L%R>b7>m*^jMJwN#^<^3Z^2gE2VLPr8}^ypZ7cKKqCvd z+wvnrg1anTSs(rWjyuececYL94u|Bg!V+It8(2;$iNoommB9PD_~xIlEXQG9sb6nE zpY4g&#f6EwR_90`Ib5&KyfQgtB}L+xjeN`B(I-p#ql+|qT*Pzy9<6EoX(TVTD*U|L zFA9Z^&WUp_sxA|K&}r<&eA5oST0lnrr2a(@(LfH^G{m>c`suyqjGkRsrHJ3!TB+wp z>7nAlr^a@WuRfXzGgCD|Nui)gds3E*(XbUO5u)~lt)7`EU4`73fPWLG;ONJowA{VM zH8Ez9$gyei*|ZWxY|hYQRdiWp>KxP2f#F^ZI0i5iLxfCSK`N8&)x48T=jh!?x88PH z$>-xFX0&}Dx5aU<4$DJ6ywXJX1~Q0CyVlvq2*`IxgWaQu3ssMY<0C7QJUg#1LTxF^ zJZKEm^511@$uN#1|#A4TmcCQIJQ%tXrH%F-Y19yqEB*i zUhkw6DL&{A#?jya5VnPZ&E-Y1U9wE5QYyY_L{aY$mv+~Ptt$$FtC;8Ejyx@eETX&j zct185cIIj+gisHm@cu241gM;76mf*IVy{o_USh3smUrPa`{QVZCqn)T9G+O0PDEUu zWN-PZcG@m9?z9O^#hFcHR1&Oq{H>j4?l?_4yg9MDd=OPiuXjuNcz@!_#4Vb6mh$`S zFjkLZ@w`!mBGD)6K_&-@(i8nB=+WjQUf55*-4iw zma?nJFUp~*uZ!>BlpCB|RrTWj$dqOB?2h0uNBTxCqY_!F1zK~UhA4ML!gHmsHdm1i zCLv#sRXECIS`R@Nd zfq~k^r2g~jJE1FQvshG##_g+yeMxkJ{1z~wVGmUTGUqb$1=i}hq4<;}bvN{;0xPKl zR&UnM{d{^J|$`?xtxkB|7aD5;*&Nqc5KSrZ<{U6(g2MowoRT(Dd@;sg?wUyJg^8IBW+^ z=NKy+BlWWYdgc*I9qLe==_D>f5xj{5gR_P4^~{%nHMhE^8Da+90r?#2H!ka7)TJ15 z2{RK;jYBiVAnIaEf-RbU@?*@$z__sU#My6w*@VtWWjBpn`PgY`Bn;#!9lYh~9a_|g ziz)3ywIK7N{v=Z9UmVWNvMpy2!3-!KGFmdirAZL4BeLcQ;6e-rnvxHuI91XaY63_P z%IeOCt`@#3SUWKqHf9n{RY8IKZ2jiS=sO$|1wzW5IWaLsLud4Yz2A5(183O&T*#LE z8HlQ1!=i+XQjmPo?i~@OFZ;?&Hpikky$%8GW>{Co$n317P^BH3l7{6a-7hUu_s|Hp z9X7&HJSQRbH_Elm`Sl?0!7g71X89A{lk&Dq=K7!#0T|dFF)D-PIUo_L* zUJXpzs_I)Y5z0j7_2y{S*58@tG-CXvKUp3sq{Ia%A61zW8}P_%<4fgtap5$X5aA*> z-B~0BO5|VrixI92%?-i=EFQ&jxQQMu8r*R6=ZrVSbva0N#M$V`y21FU+h*hcjZxxIg1q zl?g}4!N3Vml8mfNwpF$2nXbgm8X7JfxLu~Q9s0^xb%tS&-++61_tIO%b2AwYdI-#> zY+*7YzPV=ojscPGzE0EL)l$l`4%e^jr#Nx9s1)%iR!ylRsC%xfW7w&f%=OK^cEog0 zkTkKSPXiSOwrgJ5X+U#n(viohAr_O09Yamgq5#og*%8bZpQ_ke?sl~DfDs(SW!4AU zZ-JcxR^B%DRur^?T=7nbjseWXCDkFru~Hp~fv4-Py&dwt4I>5nENANs%p2gCF0Z>p z^@z1PvXsglXuO@16S9wAX9i4<_?@|#_X&1IwOAXD!|Gj?el~BHSKYO(D=kZx2Mx{; z@MdxI_MmHz;GaP|9~$*Ytz@8>=8DDWjG_&zwCQZ1SO=sst2H|?gEegM1MxS?G|WOA zg!3b{_I#Uwz4}*yl`zaC?U^|5Z`o7DniDVO>V??@gECTn$f>^ay&Df`#XGXFjn|2V zgWi@*rAv9m`7^-MeCiAT`J?cB4EU9+iWLscV>NGJ+q(AE`8!M118Q?dNAvZ36Qi^-1N&yVM55;vc6nTH+t^enng$eB|I#QQ4I; zwGdeAoE?e8L6ummU{6-U@UMeAwO8igsXLM#IQ*E#jW{ni0&_|GONK)#Gpq~2!f=GK z|IRBqmTt)v;%N^f^u<7V`}PL{40EFqONae4OPtH6sIw&c!CWYN1)@}-?$AcSYlgaG z&p~;V?b=O%qsIwV=!)aXGGP^@yFc8X0xXrZr&!n;C>9M@uqsoy`s#D<)cdpIZF>0 zY@g7TuYuOed^fr}LdrSa-iUYk{xrB7jrEZ>Im57?kgRbBMc*upXKBnoHTq`)rvHz9 zaRTA{^%Dc#KNqEchco!CA;xYGw?pZc}HswMHWG3>tKwwt(_WE}MefUM4Qb@yETg@lGK zyeHY8DV?cp#w1U^PDW1^?Ge^-D%4>|aV_hsA`uAGu}g}&t;pVJ`Lq+=nkKR`v%dWD zHo%V2_59Asc?{mk{3N6xp_$hqnP|LwHTPr%Un887hoF;Ok5@=&5jB?kVJA^vsPn6+?- z%pr5{GfKelw5UshC0&tlW8&OXN}4b9iV^ty$$w#=hrCp&&r zpTkHH#zQcmw{pl8J`>>B`$T|W@R+KVj%Y=`kcl_$iM#kB)&FVSpwve-Mt!|IBjvQa z?xl&zvVy1S1Ft>7hk61P6b}BR+ol?%uqN2TX>01@ zGgXP~;2&;ymU3qoupu7pzFpk00<7N$nA(H8R(@3T@YSKWBryv~+kQX$;@0})cjk6O z#t5Z151o&#y>bxdSzxcOCM%9WT^!hJP#(~%jd0jP=b_{_$E80qyG*r+O`bA?Rvj1> z*hdL>XW&%pD1TjEj_(_@1J4K5phpu&1@tnD7O!; z?|nlZ`mR=ojRPB^ z8)kDWR`&Wms~j1|Nlrm@boAMqe7`k|Mj{};)RA@OL!*ok7svZCzdqO5H8&Fc%>o-S zw+noLx&CWY$AMd>Z3LYB%AZGts`DEA>S(iHF13j`XWLSgC`OB5{&h6gQ_h)Vf{A<- z;|Om1^2_WkbN2YgEd0I5T7K0#+i;kX?o9t&Mo?wZ4pPmu%30rMx2i3aniOh;8+{Xy ztRc`MmtsHSt82u%`OqdlN~b+Y%>=CnWuO|d_Qs;y+4&gUm6|bNyVd^M09*fiAfEFU z>8GF0G)JNitVv6IR)xjchxV^HSb`}mYcq_CRu#m zo9sR9Cr^u0d+Q7s#>UbE4#|Nq$TJT%PWRWRq;?4Wz|moKvijj-e?}RWM7_qWeMXz^ z(|N7s3c*A!pMM}BLFx8JhmQ{gnmBbuZ~#rj>2V|e8$*;I zDpHsNW}KK7#ukfSR7TZ?)lt-iL<0!vocU&9SS)Aw>f2Bj^7=%RuhilXsR%f=S`ycLazjy&XoM}N2S##^6y4-bkqdd zPK^!W1-`xA#!Jc5o!tcR;og(APDP{W?vU1YfJ>`r5Ae=T<_yz(c%-gzu&{Cl0HbAN z^Oe=_hN()u9JajlAeoWh5=})BFZ5*PSo%)}Auax|Y{lrXvMjK%e=eBwVAf;akkZ;P zUSCm6&fa#8W8zBO{tdfBk)NMiwBUt_bHE}1>7Kp)&V9pxsXO=+hnE)|L*LGU5o*3Y zqzo1Y__`8y*AH@ulexsFzZ?CFV+QCMRbQ#J6J8F)lB5d7H$Am)l;V-bS-tx_aFcY7d~EY226HM z6l>gWZ0>=6h&_$}17dWq`CPL< zbeYMc<6}z=jRU3-BH+_!;?H*~)PS`S%LWfmoM?Tve+zc6iU1JEpJ{`^e|0|oAp-Pn z4FOnGp4iU5&Z;=Sri<|aG9Q2x??bWV$O58<3TWWRhdb|1YutI$(&n#uc@+02oe=}3 ze&-QoY!Vh0B`tFRkrlzx(h?vlxE6$>caW2j?e7oTqT%BsDl02XC0-bnABBg9cMtsd z7ys!mbIN~_Csu^{(JG!aH!Vj7f5$WVp0bD`M8pTxs`tpBAwr-z!t(m&CVyt=d+A$x zdKA&{UEO3`3sfwTWtV-L*kj-5vIxQ_6exsU*^d6LZ#iWuX_1k6+`=y4Jy@U~2$W2G zZDM8%f1GJ)X|3AGbnrTz;A8bh{dKkR56h)C5int1G+Bo_FBcVVbU5tS(1ZJIt@& zv??pwiDSO0VfA+h%~HJpDk4Hk7OCCkAhTkIbOVy9cVtY^T(aMh4UMhSO*H1(mT)~R zMrIvruCG?2u1_3q#{3~Se=<#H=hMk_k&{sJG``U;r`G%nV#p&bq)D~K()|6=wYkV! z5|VRP^{B0_Dhqs{zP_wDJVgPT9nAj0#_+-TVRG%O6RX@ZWs9KT;EZ9K`K1CYzp zGf2qw<52*J1p)W>_Y#T10r?}4*K zlM{P5LGkTzPX4|_xo!KwS|vR=@RyTAo819tBVJ?X)ozl5$>d8Q!fO{?k(rEF+|;)k z{9vR-hXX)!olS>ntE1;@TW^lC#tC)L^J!Gv^)>5nO;eP3c|mx@dM8uiB-ai<<&v9{ zeN^}1O0`XuQ#YbtaecP5YwAbTFz1#vgmz=Fc%h}$jMqy?w&qX=m>lv_cCID?)R=ilF~zHzltetjPSv(3j#x9+^<^8Q z`S(31Qd+dpV)uG6RbgH;?n}Ju>dkh4Oxzr`3-gJ#5LQDbF%U!RqVC$KF z1_ArOP$&7N7nsUg&_o3unlF5$6-&rtn}nAa%8;+@&And^QmI{0o&zay`xp=`$^QoN%1{_}yMl<72bZP! z9xl*-PE4Gx`XXcHH!2dUO<4x_>qM^_?Y}5gvp?xiK#uid(rdH5{_=zdYC?H=IZ{Tv z_U_-z%>`qJf|AgHcqtE{}c1QgL(c1Uo9WR2}6wXFttwPdy{mtuHmos84GcJVT zW^1FQoLz$55J^(6iyUdUnwgnH;Xsk)J>|oue7+hzdXXCVAJv-}=N79cd^!MdceEWu zT)FbL{a}D)A~kq>d#Hb~Gn7bEZl)dUHAd=*f&kUBR;#SP(d}qT$~XW(!$p1Z?Zl2A z^J#khsnUi)Zwm=iB$REi-mEVbVD1A)G&B927z+(+=S|qt$ z&wV~qwv2FTM~&T@4Ab(V343nySI6I>b~s3ZJ*gH>_D*bWwO8!UL0uU6c%rGyjeU3T z&cEd4GvND70T(rg20jP#OaY(l-rWUJ`DfkH>Ah64FZvrax+qC*(o^bc5gbsr-j=C2 zrGaVi0s(Ic9T8xSLva${w{;4y4F7adk-8bhPnlFh9(QM`%01rA<2H>$MX&kZ*|=e4 zMm#N)%xd=KESbkN6*NXrV%Iuhdv>y-{q$ppQm}dpjA(|No>~fjvB;WvqL3)Pze1pM z!L1&x*0C%B?;xam*WW?NWoNt|Lg_x=HaC*ka`$=wPj5dMzM!#w=Nr!_YKFX>^`Km6 zdwzL3WtNen%F_hFeVQ=UsP*&hJc7+&rTEmV!fUTvvI!pSzvfhE!uB0w7w)G-+XK}` zIX`|SB`p7VrW7u(^V2f=Gsk)VNfqk(TAb?Lr)QvUy`=m7xc8vS!Dm;`!N6H3U36}- z1bSveF2i{Ru&9j^+_u>R4C1dQODjwFXu~@me=Km~nkOosZqFzas-W!@QPdAoy_bI7 zZ-znUARR;VTwdO>U)lv0M>P>q3EzeA1{!Qi4*mtsfj{D%jO1Jy+sZ}SnY8bZip&Z_jy0Pu|(Ur$~r;)hwltdD)(ie@PHX>Gad9}yC@;$+IluaicL&L_J zxk#)cDZTRVYu0JbsEnlWF68g3OJqvi3(bzKPLvK)XEWcRr#Nq66O$6tItsWd2 zJO$O+M7RdB&h8jeRNA)4ig$i_lX^wMTw)bZwOV9|wY%>(a(0B2h%ynPm2p!fD~b19 zh4GlmM5~Fz97Q||suVYN(wUNRYuZ9d7F(PcTC`O~^F8GeSk*W5{k3A*c}_Z=(olr1 zQf*Cxuli$+oA_R%{4GmlOPX1H$(PS_kI{heh&Fl}VeuE8PHN5C$-k(Z@(+`}O(kKu zS{{f6-df?Iij9i*{^~N?nk&ETa~Wzn7e3&wg>Kox(sy%xIGwdDOumR)9~(iNV2&AV|g z&*0JZS5IoGuU{O_oT)X&8>4el@<`t0g(s6Hcj{?o3@<#xY6y5Ib-scSWeKd0PmD$B zwn)_uy!CS2k|cD|BzYOSCuJ{K$*bx9GtO(mAT4gQ)5rhx% zOZnEj&W-NVjw_jdJuv0MW8VBj@ z)8#Mj4=SX4KkM=mI)JVaR|GtgkczD{ek>6&$ax!LEO^SDkaFqWaX3-BYz!Us_zn|I zvW(ss|JOJ9>sOvUUi)^XEkr$|k;)LR{-j#(oA`S6bxM(K5vsV!xyyjHcT>7~$mnQB zNNTuE%qzW<(Y_ToZOii%aMtEzKTOmxW2{p3{%eyMr&TT79R6l=hXVzxHzXqVIsk-y z_u1twv^j%JM45)O@0Z`0Vku7$(qc_?mljBe5B_2mu@%aQ3GSwQb7%iT8-{JPd{y`6w}oOCayn;Dt-vdLI-McxBzqEFH^ z+nX(F%~`c4uI3Nf#=jpdSYD!vTCiAu2O1r`JxRTTm)?ziapI{Szj^Cyz-$F3^Y%U0 zCe<0OU)MtFi7fe|E#CnXuRSc`OBjr1rX`cQ=d}6h2d7fc|A1+4Xvz6R{cnHvH~>z1 zctzAfMm-(KSMS9^s$amxGSRFYZ32yUDR_H+d4G}oW&V0;T{ zmhxbVB25%jcQ3D&`@u-iIhkBc0Sn$IX`qyiQIQZhG%+j`&^LBJr?7;z_jgPupO+m=g$ylG%?#7K zQcZd@TSvI~zO%X#B$m6anYCG}N3Wo@3eJcFlU`PQUZd1M0S zMO(nx+4SK$8T>#U6)Lm43EOz-RZ_Vrv1{l8q$^;9)~}NZa}mpezPu|igd19g0}ISx z4$^T?C~6OfW15t!(iQmE3`JjhiS{2GnL>_Kt%Bk>c3Jg{{2IR@l*w;js^ZuQ>g`O6 zl&>1LPmHpRbEBTfmkD;zey^8Vd<_v2rA~s1>Ihv+SQa}Fb`sQjoCw=hIw_Ox*11@8 zRhlJ<5Z=2|ZcOy(OTB_xtj&`rmEodnvVK3`A)=WY=Y4YzX3f?3T&QTwU88JU?ls+W6Oq!*p&q$5!(E?9m}aRW-uK{Gp9EyiYo<`k)nQ%;v)imMW*EHl*gm~x8RI$ji@{1kQiAG z)jFV{UR;MSz_>9j8qZeOes{FnGf7yXtcnbRJj75;y>4ucVuMM`)e?Fr6D74fpd-Z~ zZnj}fo&|DGpNW)+$)H+lOov2r#$-gUe8`w&yNy2Cz$4szFcnD?l!MIV@M&U7D{y!%%;9Sq zx6-1780a8dxK9SGOJsZKgQrkP3> znm7_@j*h;aLF+5@wr8KQU6E7NRv=EIhXo@Jzg&Mw4oY^9#5*fSujiQC$DKw^WMmx% zIFV6-;J)6pbq$O8x2)FJ7TRr1RtEOJZRZw6*{AgHC%~JJ;J90`bxv+TDOBcS);;mq zCK^##|GvxtmvqTAmQzIPV)&giPrFarM?`M{h?m!8Xc-;U2`(9|?wqnIr-%xIo?{H% zuwAN=;0qG?J&f-3yRVH%?5($1?9bE+B)NbDEaJQQT&cvYLk$3X z4S7WjL}{#&4u3QNI5e-p1@k~eH+toW9$Hs&M z99GhC7WIXWt7NjD%Gtp+(Rk|Mh~SkovG}QuuP>41?zGG-CY`geK;hsUx4aZmI2s?G zkoVnAk-{0=v)~LzIHs8xn$GHd?9I!3|J#O2c@N8A3~K3VKB3Sa=7+rq}S2Qih&U+GGg~-Bpou z|8Yc`7X|OaRA3;e0hBS;e*QiRm%#rPKi`kJpYLQ3CopLI40oQlLr6(={E+DD>)Qrd z@_r;fKF$$&wT)1ag(d4Tj0mNG{bX*OWF`vYSO2tzkkxP z_Y!S{Gb`p-@>0)$uTHCludZ^}-gy}eC799QJ?-jX`SZu^V>|);Q!?_^aJ}Jp*DLNF z+>dC?ZBhB#1Ak}2Pi^+2<4&p!;qVv_Sy^hS_C~XlvYSio8@xJ z!Jwj9Mnld;Rd$UJ2)r-5rT}gED#DPlxef#QMXIBfYT&Rr`Y3642 zbMYu=Ou`Um2^xt|ZkS0@7r`*^>5le-as?}=y*IN62Z&qMKfR5=GfvlXPsQ=e$&7k= zG~WCIfw2k2KZ>+|%wptC);n4(JYqs#NJD!^ zs2GZ0NUKO&{skOJ6b^hgN)`Sg1!Pp;(Tg{Oj7$r$C>u4z=3dN5#;@<#SnDJ}%q)}|7G07n{7?ljqduR+6$j_psNmS0%%0!zM4txv;TqgzWJc%2wgI zD3!G_IiklaQ0}z8)ikJ3)y%nBPdX0p{o@nvf4>uit`TD;h{$p=5DQhj*2ezs1+#X3 zMzk8FYmkFzE17-bB9%x|yqXRCMs!|c|BchMZNQ{SvpaLrHbd1)$jqbwG(QS6GuUBD zy7AIhzsjkA#$OOXx@2fnESEbJmseMqw1fb;neM@HgX3-hz^y5#^EEWWxw-)F3;^*` zUL?y(|I=0Z*R)`Q`56)UoPn?tH8r)v!94!d)Kr|)HbDH&)Yy=|W2Ks6XZ;r@6n-$L zQZ?Bi7Mje7`+MRl8_uXT_)jGCZVXK+bIuI$(*OZni?~Qs$R9@p|17KAbs!$4m35_1 z09$BG$8*A@jHA~Pm@EF!(2%wi&M;&!sE=PLbucZ*k02~Iu!&T(tSpHbI{KxoG@0m)HJtaB$ zv+eC|oHzT+%U{Su0+d}+k~msPz3+Sg;8d?aw(sg}94b#h_N^-x4gqb;AH%rZ<=6nQ zVZje2b1JO{#l_+1c-Xy&V}FjUq*kKU#(UWKo3%XK`-K(3_wH#RI;l7ieoowl;4-~e zS9kv1cz|kF-(_@H*3|R>QrevEwQ9a8fG>%Pj+VMSl|8?nud{c#Kj#GaX`!z}2tlEt zoj=8v@SYH01@5cC)FY)Cf~nI#xjiBQn4HvGD;W5T_(C2FAt1W4 zEnvCA4#CCYQUuUEEvN?q5L&wrrv?NZmNep_cu$)F*Q;`8PfsDY$)JnE5S7iJ|55yN z@F{duKO~5Vjp~)FrvYIr1J8ag>`DQZgA%;jH zo#0g{3iOrKsKRZto0?KFsQ_M(+5N&Dz^BSFrMY5f8xDtGgdpzuw+lZFA#>dM9Ti$2 zt+PkKho(~g^vk~iWN)zCbk$6NG2WUiOh`(w&p+a_BzhOR3Ba`)*ay25zZD|@yQTWG z&+{@&g&a8q9bl@jS{~g+hq^2b^?k$qiH+NZyMEKDUq{kwcT4nvo$=KM9uq>6?dwgaM@qDL`$bN;Rg1ydqOU>DGs42cwo9IuK3&PcA{{2# z6t1Vkn?JP!%_;xCFWUa^iw2w%3+JwIEv>AiwW3H246&AInsUcA!i$ zhd$s#p(OEmd9iqWdOCjTe!K5%d$y(E@pzA35c)h6i1*gJ+MY8Qn|3b}tgK)FW)~m2 z8^9A9w~2&|y0>pIqq=Jd5Ym1`!(r_!6WtNscmQXkvb)StQc|*p8lBzvVMfW1-xMWG zB)p8XzevMobtI$X3J@);B-VJ{-|QrpO(O^h2y(fVrKkf-qKdxe8UQYt>3LyI^I1kU-D86t#! z29kwsJL@Z3ItO;V9G2*UoJ*fCr+J+IMupwX{EZ45FIZFeho5CT6R)^gZ+XPgAXqZd z{1rM_Pw({%Z;)7BmBn;{Ng(c!{=&>$5I_uHeK)Wv2AJ6MYt`nuKO=3@FHg`q zV@p5G*q79rBsMGH%X(;gy!vS9WIBR|h>s{aJmDEJ!0czv(|pQhDNyy?PK_z9$|C9l zin8+sHHziRya$7iHID-5)3y~k`cLa-+2ITFahJkfi1!#SX`EV|IXJcA!d@(|Pd3=y zDPjVb7&CJg7e}e0WYciI9n~o1{=!>p?B?bC`&s?*GQ2yRrC`NN+WZX1)LECGHkw+J%>kxhC9$EQHqg+n z`wuHPxxEaNUd&wFKqvp25V$mO^K*s*53Xvtvh7@;yfmd+^fMZ%sCZ|2UxAIxgT(6{cg4vHHz+tS-Gb>?QME5}fagv6>@xe_5fIbUK_lYm)o9;m04Q=l z*4H`HG-9AW@|K(t?*g)Ce=+Q`@!cd&0wr)^b)M{Zp5AydyQ|*pQRjAjds`R@{=Gbp zSyPPjgT~7hH<8ne3&m?$lmR+7uZuly9D-1OEp@h)AxAVEV}?X!2a;`F$KP5F7Uf`;t3m&y*jV1Iunv^+jEOs&Ne^Ip|-oPYIT*ZnJ@`@)ElR{e#- zF3QDve_*x;iIkJ%7WEE%vfPdo;n;valH-HRm}4BtW#E;~fJtezMx*biIhkWZ0a<>L zru7imtkfKZklegVYKsY)e{wP9SbFk9)^AgqvGy1@XC$C5q7cgk?!K-q^=L#bdx@)8>`%}6&9UZTyX?IJcwZdQJjAo){M2~hov4jIxu1e6HwnlmhZER*B-z*fG>8qV3 zvx2BH#49@Ay##^N%ZYYJ?B_biaez_!E7G3w$e2Hk?BtaY`M3^z-f4q@Y*G{mHOuHs z2mk6a&?QI!?z()F;jpL#lb` z-n`iWc%>BTweGNIaXo7z86tSR7dl!kUfNV*=^XorIL#J-&4_OEB_wqhC2ZI2?4?o~ zHE>vLGU(zK_quwI`(m)vN^JPo0N_knr2EbnBEdju<|;?`uH>xA5q^d~*uL9#s}|T+ ziT(X*EL(aRm(X48*!fFWtfpDPlXIbX&kFA9cs-WNYpZULH!EYa;0*~aU7v(Cvj7Zb!pR>c@o zl>!^q;WUa~zFxGp>q*-(PWJX2YwP;mk&JoLBnS*7DN>SMbGw&hA);R%=YQc3?M(V7 zH=&~GeiTMVGKouy3&E#%UIsfcHumm*x#cL@6&3!4>hZW~R)i+#KYe)M6NHSoGjHqj z|1VGc=4Q!u;m}do(Xi6c)YB(IDSke=*d0YZ#CVdz3}TIDEpLNBoJqQXgIAud>0X(> z*|5Gti@5VkRS_l%NYv8LVYBh&fn(?8SK3&C8iiucEG)k9G&sd_r}*JaB?QT(qQY4M2(+{kz#Lcw@@WStzv z-tK;*ryV-fd&HG`5|q{Hp(>8qp6;a<$XQ0ZJ#C2tV)c|Gr-pYZ{G%VcEABWtr z)V;ahM0DkE>`AY9&$wI{5?8HDB4YncDcHepdCM&+LNSJ=_35;f!r(Ofkyks{ffk5b zyQD@PpgDVSaNuYr(t^G|w3TK2$p&+{&h8}Z0Jr5|$$u3nS*4DvQ4UWoKQ6^M4t6{) z$1*BGHDM#1p&qzSHS3(6LAQF3_hT|gSiAp_($EaO?`c3*R@Ulo=^5f3MZ`yWLV?|> z`=WLtGnj24urEE|gC;2n)noVW8Ijf} zUje5HWyCpdq8Rn_*MQ_fWyim~)d`^4v?as3etL$m6i>shu4kCAcj#UYbI7V=98(NO zTIa*p6Bjd0d-s*-?jtCJhC}znZ?f+Ca5|( zZ-rHIdwqj{Vx=@cnI=pcwYB`78%rP~OmCORA?z$$7Yjp1Sc+lsXV@|SXu{EHR7LLq zlh?i>FS{DyMuV)j@~MSQHPO$lw6s|Xq+3U{KcS0U9uwZ)zvR9~^IQGcG$0J-b*{1a zhHj?h{`rt&Yic3^{wv;Kb1v@ZlM|Nz8(l<1xYuNBZv{PE`84uimKecCb&Abm8dAMZ z7XtVMh-eTHkSPSCA~9oP#R+%CPNi+b6P(4*vm8^H-h={8=C<*^@J^gm^&A8P+p!FN z{&QLueof-HLv=7^qVOJSSk=nH%E2cKW~7M#?}*oezhg?C7ZV-u;L{iN;tvBuUkB`c zdFk}ct{KRsY!(+%;eYVl*ja7g{MyYXTd#Bt;p3f=4(h0t0jfKb z0ngKa5u$%-;t{Vz?Tn$+5!Lx9YHl3vg(6MuG^M&VSM;=b2BcB+%K>RS-c@^(xZ@G6 z>114%fEN)MDm@QuHIPfFj=l8ns-$3}MyA?Gg9Bw;;Tu3ByBwIxKc9Y}LF$5b20qW{ zZXwRvt?8OOYxJ%^FGX64OH(=veBK2zl^;o)(*Jgggqdfm@ehm<#jP*@kKf93$*ncg zE%f8hfc@w|O zBx5z}F^E_squyzJuHPO2k&EzTT`gCPnxqbfU1&_vbOx$8u$Hm^Pyr7i-TwWNH0#CA zGA^|Z=i-PLaEPul-bqYLvvykOo<5q=wAsDouvttg*?#ZwaE%M7(N&;ZxVrP%xJhTI z>shl{FHuqbD=Ju3AybIRH9KF&?8oeQSir7MMf~L?tcM;LywLskE|x2hCTOmfd>X;V z)LGZCKh0I)lc-~f(R!~SObN?gdtdu+MLgx87R4)uYN(TknRSq2Lg0jrKPu&Fsf6@I zHcb5pB6sE)SVi!)sFCQ?nsNJdwt)7unFI2cuz^3je_lC}fSJsd**#Yap$n!hnLFr6 z{4=4q4V6b}kI>(7OBjG#(#4yQ{SCGhPQFM9Y@czNZzFqZUQw6lfJ9ZACO73uYTLqg za>C4^WdFH2RxiCiPi`eA+SHf-%ZZ$+Q=%~2K0hv`69WVmue3r!$0Silv7?HJ_S|Gt zN~DwcG?K%COeG?cOaqBxY!aD#Wq+_+$dT)u(wxUJmT4+-pWRSj5UB?~2%m~2&6I|% zeyI2>5dN^tQZ0ljZXENna$S@Gq&SRgm^_k+6Rsmg+g*+3nm^dkLK>`iA?2YLL2~hh zg-yx+gnvb?1V74pybQS?wqmLkeFAST`Lp+WjSYobbuX-=&Q!gV(Zj%jwL8~H{(vZz z%dqyvz6Y7BpJ+;pFw}%(F}sl{r82e2qWR6rkUu;Jh<3GPN0i$eQ&EaOJaq3>R--xx zsUSoqTd-W+A+9lQrg90R)cIuy1;e+p!2VRSFbomso2Ap&Cmt-9M7AZk)zaASLYw?& zW-<%jA}TS2mj)t**jSdG%_q4ns$_rXw4X;kjU;-5{^rj;arRW9IG1qS_CwHHnnq+q z%7E^c;U!?)<^rc#bn^1ZxS0wjuhP9zz)%JGR&O!=amoI|i3MAnVaSRhRNY*2is!;$ zC2Q}n@w8g%2-q2ce&GPFw$#uFjJ~L0@c}y3z-SD_>m=`zY01PO=Es}I9C+CH~rem4gEgF;JUI=1R%`~R)O&<4VueKPg;jFtD9%3N4 zby4ne_}HJ=w`Mf6*#r6VcaZw4(NKTV1GQ+bpH-YdS`#g_BuzL%t1%rXfk+)_Z1Y3} zW-Dp*L8$nA{gvFmftuOpqv1Ilmg~F0(-IC!X*6Z|+qP8|DrDuA0^3@^+>^3fU*JO3WP>7eJ=l>l*vQvB$jz+KiDT8>Ql>j@al^(|O%kSMsZG zAb(425x2V=u}cQuUGL~Oqsbx5FuXdNZl2E~;TKo|^ z0>&|X+eDxK#Jy~9u?c}*wWxJCwLugw-=kAS;Acok2vSQomK`3)!{EljLHJX+7kOEG z46~n!TdcF~@(Kwl#Tn3beKHd=do`CEk-V!Y+|>Nzqf!&XIzvC9Sh-RsDV95do^g?W zAeOqZHpNvmV0oQKsReMdP%7mQ zcS;3K7=B7@)=^t+&icdkk=&~P#^>?TbQxe;oEJDqK z@Q)ZezO)Te#WWNp!cvxi0I4#B-Ncd#UlzqpT&~4oQ*MZ@U-E+%4@j_vZETxg&XZHv5Ips)-&0@vq&$CL1>U?6nQ8 zo;w-*3bganEWb@zb8G7kxv_h;sT>$?>uNCVsiS=W=>pcik;txzVFV5uM)$S7to%a? zfNjo5xuGdjAloqfEHmZ&Vf4hMq&+t^x=*3DKW$B+lL>8s>c89+z;4aE&8VEYIQ4$A zO0HOtd#I?WD7FQZEQAXJM?Jnlx$5KN!{w%otMgOckoK>Vajb9ag7Z@GVHY{WTr`#R z2q0Fj(ije&kqE`hu&Hp^9{U`4Fp93&{~uv<)@IO%KHh?HR;TvsISOPRI^4%TDXul&J=!|D>GTFEec??uP^HQH08y2=&#S9KcUFBR@1u z#44_*dCpmjir{f6Q)H6Wfs7qawpxty=i|HDr+moBLMe&vQ}sFvR6udX)95rgRnedNFUZA-r*I6RE- z4(cTlCii`bNr8#+9+RTldnbSs^WH1XKAeZ+PGO4uEw!xn9pCZI4_Uk# zQ&e%RQ)Q&@Dsg;R8yk1}?N6Fo+4-{YuPXQ%F<7S$R0bwL+nZWUAHZ)SUvs|$iOk*P zqfb{zjFR-Pw0|8&pr|+3K007tIJ_=GRiMK~P;-%I#PxbHv+?LE?`fZgHhlWdN~o4+ zTG-}$zyVk;cxMjt^cRIY&9VO3SCyBS=j2bzK+TzJM>#nQu*Z2U17&vDWz&r3JB5Xg zCI|i$LgVwcm>UiweuO*qq!O8>>zg)o%8M{Gt6+hLMLO5}UHS(_cB6Cp;D+t1&wuGk z{-geGO)c+RUT$%V(N!`Dg`xw=A6>AUhO4m4I3NrTr~5RNuarBX`3oHW(#wLEk56lz zP@gFpc#yqjVnPQ9P^sPPdRvnw^xo(Cm0*n* zmGfgL+7wzW^IQ_&hv@!!^-0sxz+m4h{xO=)g#0o!N&eeox?m8|u(kwy25Z5kjCwyLBR2PW6Sl_}L0M!kyN8>ot+Ms3W zFD0cm+0^0y4`X!HM~81lY|E_b^DJssG-SO|p#!G6^4TA<|Bk%=GErhYz4*+>?fl7hm^t4-uE%+lViL;3vqb0E!4N3!bZ zNosB1=SB$rdswba`gHhtd-^wZ4F8*V)S*XsDQatq0S7kqbu8T1H`iy#8wGUQ-6St3 zsX~v)!ztgu6fnhs@1dd60kv{^{v!R_+;1rDgtz#U4%|c=X6@62ktqt-yLr8{^kebq z{+*SB-yBA3-flO?N_-kc|9r34&ooCznUi?IwA)w?eXjwNYWmY55~z*y_$YRmudi(_ z!XE$w()`RjAa9a-xgwt8k$M^my!bTzp$5<2@FZd0D9*gSAX#aoNU`zj!u+4lZO)h{ zo5sr#iLTFx#tM15Xih8UlN3RsQ;OnitU{2Kkr9h|BNO|woxBft z|DR`6*1~P#Bch?H21mhGSI-Q4eg1s){_O+P8pr2d7sj~1ZP43s4>Es$z_EFfB~?p; zf$`hiY5=fn;_WZpL*e1!f0&Kua5?SaVPav)1jgI{@k{mJ)82W9XE-1UAlmft^Yb%6 zHjId-S1Zv2tVDV~S-=dSAIJ{nxEeu$V+BBT0o*H@fg;9b>zkW}rC=Zl^9S7Am||QgYEn{2Xe4|=1%BiG(3Xnm+G)t4 zs<|}|fCloN^m4_OHs|H#k=MLmnp#>S^+iAzE>ta+4DEjldLgrP^oH0kFc9|JDqL+f z7mKGl%f|2Kkh_`L+MC&1${zvS+w+6s`_nde@(d%me*O0CkYy^sLKk4_LD@l; z8m+~>hhUY>VpDGuLh4Ef8z1812D;fv%iAebaHda8Zo!VQH$fW=hNF zr-)`M$iXwC)5y6>C9lb-;M&4=U{bOqtBiezo*H+BVA8eyfcdY&M7+9nx4LoH*8;j9 zp~41WW0e4woq-nU0+_9HxK?y+4VPe2Wuvp9gkts;MYSQW;sZ!FyO_5!nEL*}Xqo7K zaR#jMGr^l;G9_ljh8JkrmaLZ`n{Nd$xcQJ>7?_s{qzzw~?(O*PQ)9|cFTQxoziWV7 z#za#O{%?R;tSV0 zfd>xD=QYWbY644Th>Z&}8c{JZi+3l(M3Dkkj9beWS(%P7<8%Adu1;B4SbxFi)$Oft zW44Xn>WVxHo63&7k@z^B7_%M|x4Xd-*gdX$0e_w>$J94mWYkGBSVOhAixLximdab?swpoYnIp*V zWj@aa0r4W{J(!b)S2>)+ayDv8IY$^2-5L#eFrpX z+>^8#T`+7~?m7Gyr4%-ye5VYvm1d}D?%iZ#i=LPKIGFptZR$17B9rNyaTOKzrrM`R zhu(re;qkq8y$af%SXiF}{CHP^m3*A;GJJAC z$Tk5ECytQ^-w@Iw#F4kQzZ8tPO933lg+vmwLPThh{=GmGqOH68h3Czgf)${RC}giQ zS|UUB1=h^p5~JrWVd@@UPnjP0B910j8hlgGP?7Z#Y(%@$c;}|C5>Q8R^Mc*Bt8N02 z0cxE5B^Dj*it41C%zG1Tes^)pD$Tjgi!-(a13Vn&Q%^YJLF(0q-Aijf3#XZnch7B| z%X|E+i&^q*-1+XVcRo`jHCiH6i+s&@PdrO2G=I?N|Iz1`!v@UCL50Q)TPhNSF~j^`mHzi8B59nb8?Cro(sbYf? zJ9T=H1W;GA1GLRCd>_BEct22A>U&^3UV1-DEYi!ZW+&);&CG=3|R*fnUG5{_Y{Dyu=LO;iKqD1_c}=@0ct8f+%RJ?6e{S4a9TtHHt8I~L(y z+8##$7WtZi0UIzTh5bL-vciBJ_0djWDG*6^u)_7W4prQ$= zQ1S3)(BYolbR_k=Hakywf0@`T@bB4?A)zwly(t{J=9|5HIGy2UnDKZrT>_nt;3MU^ zaU+j{k1PR>zZbLpspb_)OO~55_XxA>9rta`mGN49_d@}@{EoU#*x`9fO6VSyWc_(} zJ5?67E>r_~A9-obhP5z*sh4oS@tj@og&_1WWv>>iG(^gfw|XD!f7v+SZT*$QftDgI zERBu}mLqw?G*{3bRL3)00Jz8YKF~CLBfUs#J?VwHSlOD0rq*SJS6yEx4^Tk0I=|(q z^DP#m*0Z1fyw!q}puHPSZrPs*j5AlBMzon6w1aIi67btky(;g>)Sq(CP( z`ACQtZsSDKMj9xGKN&_Qm$YxU83GumzH=`_ap%zVrCQ|K9PL$CMx>G}1Q#IsWJ42I zO9wpP99fQU>I4Yg(J#i??Gmd990FSwJW&eKI=6R!!I>J=yyjBZ9JAN;gI0^epqVDh z{Ps2n2S3AgHJWAoO<`E+ZXWlk7%_>VuWZ!Tu(4?|M6lY^4t{}Bx32XeF_uVOReBa| z)kM67-L!`hqm+_an`?$k`N&32Wt8X<&Vgb-$QDc<&`Sn7BhsT-`_z<|#_(*n3buWD zGX(hQH))8zvxlkZ7((JqW-5HsT0-ZaHP$#W8DKId6!JoQc0ZRDhZUCv1L7jg>8(qV zKf)xf3z7gVJhxM#;~S^)OP`K_W5Q}DjW9*)p!8}M(&gKUO zkby2xK@qUdrT=zqJNFT4%5VYFsN9lP0pZ|?k&x{FcC-}OUpU}%+5S*)7cd+B`MjvO zn8j+gP*QTFcpvEgE&FlhfIy%Cpvx3vdm2~3<8j3d*bnq(KMwl~)ghX$N|+G?$F4T0 z2T+Hw1(Z2sNviG(-zO^6D=k>k!d;%V5bKC!l-w=L&yg%i-225){uZzvi&UDu^2;a= z>mo+5Kw$f97DOD&`e{AA&@41~Yq5wveqXobrfCMIaW!G(cW7Fac*;TvKJ$GZOsO`| zi_rS)We9uHugPlPs_ZHr&%Ap{mCMnMh|vWIJzpwcrSaAbB}&H}N?SSHfZg3^1`<@l zKs$Xy7JC?jXL2-J{7Ar^{%oVM=H0ZuR(~y-)RFWhpes_nCgI9$!vX@#l)nPZzJT8W zru_6Ufj#Gbu8eiP_-ySxJ6*V6Y=uhxWvfS5bA7$_2V@*BNj7SGm%V_P%wS>VGgIRGB#6^@VKTHP1 zw-(CDyeJ{z(rTZN)J0#XZIOhcPaP;oLu6JXt@goEc-Q`Zu}UAdEBlHY(r2s6@{TVe z87srby8!=9f(mpo>96?moaGMfxCA20WU`ibIJPnG#`jcWm>M?eL%d>Ob7w$j5h z=kIKA5gI?F5${oT>d%whD{hi?FVeGmE%^@M|H7N-#)Y1th@aIB=*fkiBvu){b;v!^ zOScZ^Ft@f*LAF8JF6zJ17z=HRUS-V9H;H@x!b@QBb%yk5J#AQ9?eNpmngW^Kg^sgUZXH(E*QpHPo08g zs%iObOcL9`FvGu#0i@IUp96T{bvU07y!UPNM zy1Le*V&1n-qbIRjex;sX(R=en}BUdrGDWr(ids)THR^S@2dG*u7_9Q z+)=LTd4LrX#Y?fe)fB-TwWx3Tsnr0Vt7P)UZ1Q!$IiK~?6Vj?FxZmjM2@B2uO7`ZS3P)7HSx4I(rc9_EM4xUHt#Xp)E|UqME4I0NBt!yB1ro)J!n zm>N1eT3*3+Qv;8A5&3d9q}zK@Fnu^k_(S|P(UVjSwKi3`ViOfZi=P82Bf+GvC@mqC zK&b>22h$q``15(lUB#$T2!g1xq0;2&h)nutK0@s-3j5&DND^1J2p*DjaO`E3T6VFQP1p>f# zh4*{AMkwKB(26Y%kAUktS*umMG|b`s)^2Xe8N!W;e5D<&+qR4_F1|$Ll*=qW9agaW zHRxF!St+1ZIuE_r8ub+(IB&06BG|mm8%$i^KQ+DLnni&?yqF|n0MRV9++U(uOs7s< z^e7V^Yw$1*Rj92i*omi6GFH#NYMKfpm}q*((NIvdhJHa(mJQASwD88(nk+a0dqKE2ya2z;91V?DzLn1^Cfe0oX@O$?g>YU9V%@7HEtf1)pb#^IP$a-%~25gXDbGT14 zH9C3whp%-gmL~pyTA)?6-#i4WU3n3Y_}9fpu_31+>&3 zFVD}rfF9#y^6@5Aw-q>?t6UWf4l-a0rm0*Dspq-umGvmUJF8jpLP%jt<(J@^msi;v z$-twU{rLR^N#IKF&F{@+I;5M}E1wPny2-+TqHRF4=iz&YGcqvLrOM1|Mm*fVb?9{~ zVM$7|U&p|&+1VZYsQJ)3l%C2WBSf3cfZxtr)KtgocZ&97eKA=c$rS;H_$0ZXwok&Z z>TVQYrpE-Ri1&yA$!S5nooS})pw3gKkFx1 zw%7eRpu=kdP?SU#81eZ^iw8pumfyE z&gsNs+|(jHI5nY@a0_cfP)G?5;5w^ zwl}(-o?BJ=0{{7}tgH-=->nkdkeb?rRA|HnnNn@`7ji}9;^ArU`+z$Z&~lv;)|B(x zstP`f=L&HGf{`73Xdf*%o1E(=gAFgh5yy1~Wk)T+M*Q(kKwQP`x>jLxI*Vk3)dRG> z8KTg>txa#He+0O}>)D_LnxMh74WzyQmvVp36sDvRp%PcxG^O+Wh}yjd2cxXA_$ z^w}fl?&Tj(161gU5~*FA9gfT-2%Fedl6Bs?5me=GAwC|Q1~9ke50jO;z$Gk|LV{AW zY8E?aqBsL(4bYMtEk@;CKiw&ZWqjen#&UN(0?)Bu{E(NbH<3xM$T~E{Rf_#_ESd0R z!oF06aGlt6NQTA(Pjhdb-c%;}ib$3|Kv?U!OT8ZHdW0T~50fO8nK!6ixXk&31g7jN z4MfuQEq#j+71N{nrb1|zjGL_9aJMU+I@i?+B=H2zQEATVXQ}R>6E>BgiNcrZ=`_5A z=^41-bRUGRUpUnrPz@b){mlQnQT;LRELYj?D8W(qs* z6$R-Ep16#b_|Ki4T)xLW;WA%YY0owI^Hik_{#y&lb%dDRE)yRx7uMnymjdHcf83M< zW|(~xl%xPU!)D%(Sdi}h@Eq8;scD5o_@+o!R<>J7j=vZ)ufnulzl6=u22(_{RFCW` z^H+adi;tis(bNEQrJ9yj%8ArUBii-#^-ktFA?t?zzP#1PmYW?5x>yi2{rmTPNDLgA zyv8$N^gZPq78E4k1Ne6pzJ35!8l5@bHQLNp_DRA|s4Zr}{ly?>Vi_=(s(9~lH$Y8u z-WT5*s*l{?lta2bO2Vn{j@XLF)qhNI)_XAyT<1esExU#nkev z1{;f4FdP`Gh$^?g2h_VYiR_6ZW_$wpEC|#wvf89F)7w40Mu}3eA^aPk6LQ*GH;N)? z|JLM@-ErHv_M2zZr-}BD=MtP+q?xO_eDu_=B+?%$Z>y|}II6~JpH^l((VWT~AdgUr z-mg|?J0QUc*vfcbsFD!aerGn$Pd#jgo-D)4VSn)47oO;DlSp)?7oke76fa7yCHIN`g&d{r8`seW!FDSeqeSLe~^C z@e--8k9&xfZUggA8KjcrsNxHyiob?{=RIX=|`@ zZlYto*m_>FLN?TzzHb+tSmy*u3gA~nk>NG62~MXlWQmOqJ`D`x|8^mdh6{2Kz#COr z+F#JGUpm!@orA67Xp>-|_pi4@pUm9}I_gu^g`YNlBz#rUUp1nc^YzY6N_iCD>TM5=jfDL!kGOuFl)(||dYG%bBrXHd zoJ4TI2A?07Ao8a7cX6OMhvMOI%o9htHqe4LeyAWV)qPMHKd>lCD07l!>))-}@a92< z#)%)C?eXXD$AOnekJ8hC{+aFm5jJ=6j+<>F^^=d!Q@T$Rsg=eWg|G6gpE1lYpmn=i zafN~cA%-gl)@;B4Kq}EnCXMpL`r_IrbSwl5_bi1VCM81%z*jp;6GiaL*ZvJccEoEj zI}}cP7S~5_VEv$n1ZB(CrRg5;F3UjhsjH5owWpFpLyJ@SE@Omyf>in=@&nF3w2qrA z&=2&p@ZIjz4Uj(=^ig=Sn83U&1)Nmro8LBHYbLe*sFgJMC%(J2BEgQQcSvi-C(2; z6?~?&G1WfA)j#isc?_!5N$^AA3Tu2DLW7E zsaIXOaaX;h#UEeN|Ngw3uY;el7wwGVy?p5F|36cIg?Gisg>jI!(6&Tu#Ph*ky<&ZEQqn5oI^ zfT_?*9Xz4jb53O0&s$mfN2vNJg6y?^)dNcnm{IxV{5`x&#RSl zAm(*aJ`W@0e9-*C1?Dw)2-3*Y$b9qW-0Nv-QUGBwuzn90i#LpuuCPBiHe@0LDwS8`2)brA9Nz05#k8o|U@$m2?QvGQETe$sB;9h=>gMS|Jq zPjyO+!VPDZ`$*b?Ocz^A^ZI)lj~|sUIVRuKbIpM>{3W#cW}3Ngu5M%Nn-gyRS2Cmc zm6IiS5O%ITZq)@p=J3ee(K|-cDVMi$HCtFzP`FGxwgY+9*kOGPrsNe@R#d~UYQ;Z+ zc*4u+vcR43ur2pRtL0U#^vhCaOke;C0FjPj4DpFcAtA^~Y-R>v4{4|f!3&C(JozDf z`4+0x7&-hQZ)P%r7}bv~z*Xxz44huclp*zKZCseoxn9at#$x7?@b4L|jB zF}35)X~MH~la@K<*;oIMwYLnab4|Ck6GDOocMrjX2X}XO_XKx>Of&=!?(XjH?(XjH z?hfZ=b@$%Azm?u~PSsa6|3Jcony)?2J;u0(gPkVnIa_I2Wox->&()0Tk1H%Z^>c{q zqFE@2bCKA|nx^Jr4v2^t^S0kl)?3DE$4u|N1s#2kC*n3KwvOf1Iy?<&HUMEKG&WgL zjhFD-E!h$z#{bCJ2%xLfU7pZ6^;vY|&Pv91oV2>}CQ^+Cf*UiHV z_ICF6_86S^1e9u*#6SrpMU|AhyZev*NyNH3&}@@4dN6K7S=v;#Bm!WwzuX`pB3cKy z)MS*C=7Y<&()g2w##;Cf2PL>7($X_GQSS(>8jx8Wj&asEHgru*19&|@#A#ZD;Bg{g zV)_GRpm9Ylao$B7k8~a!e20Z*vIRcxx8Yt89)%rkNSA4?QhU3CI$3r_*@ru2u4_cPSiw(j&F#OWi-Bk^zwRfRi%UV0`xTC9BP(6n5 z?%jhf50ATwJnP8K@I8EJd=YYXAePcrY_qogN z?ty>jq{NS`SGuLru|mR>tJ+<&+&e!Z6ruds2^BPG@^6eX_UI)Z_4P0|Y?Gv_ZqDajy zcxP!H(57`GQ!Rb^u!dZZ56tFyFFktM=Pzg>4yK+KLyfy!Gp%C*d5#w~NxgkDPm-1b zTJHcw#-HgpBy`7@dnqCQHo5!RdPKHkt+${RbK--~MnaPCY0sLxkez;Sgn{!S=-Zeb zhMJ85-0ekIHGk|lje<9SKtrU@`1Yanjj4(VJ>y_aL$IEvM59~pNcXbm(+|nR_p+YH zr!@^Bx>Fw5V9>rn@v~HZofzUy#{s8v(MFG;%fS7S#e@jRw(I_La}kj~nI5i9sr9 zA59N(wyiQA9Pc3xf4jSu30+YIc({SlLsacr_F(g~WxVG!?AhaT zDYY+A^Nh=u`y;cJ2QrqRl?Ew*MeoC4(U<=Ie!hPRsJxoB88$jPr0(E$Y&HBV9n1_s8C!}T7U!IBcs<&?LHrQPn4N24i!L4wnE zyU>qts|j=bxcXCQQj+FA+iSn?Qy8J}Gn)0L#J(!!d=-YYFo(wqTuGXYvYS<|dB{nI zTYKNZGU18kBZ4^=xUP|@zI9LA{M#T6EWMt*C6&7!6Da94)z1}(K2rGZ6a z7Odj>4bprlw?x8>S-=Zhpg1P80Mzx>or^j{aFTRdsj}S}xOp%>>06!!6o>M(QQ=BV zjejaEutxPl_YGI33OG>YhG!(^fhT_Aot6;N;|4#@Ox;smVXAbSpKe(hTdq6uqrIWg zvyw`JgL|qEUT0oA&z#!~_DK?6Fhz#roJXx|8Gv&x0h}0no@b=P0LkG41ap_~0U=$Q zDMEXKQ#g+mG`)`ynWg7m%h4|y&5_trv{|P|O1W|ygyqg95gc8TB946>Vkihsbtb-( zXxKACkex<-xM$C2urq-hoq3FvjA*R{4lXnD*N|9CXsFE>a$M@oJsqROjjbaBO(Wc# z04PEn>Vo8^s%47y(iD4~bxmztt>IqTm8_w~5Hlo+56OU`2T1t>3MNC~pJST0!pOiv(X#moo5@V(7dQ+N zAjnhH@SFpX0}9=5+k@~^38yZYfYI|6sE>ez^vm_(I*&qJM5I-mMpCHgH(Oaw)RsaDJPrxaVqQBNYQUl^y!XL=f#`IF{{e97|dY>hsclhvBKR8JPJpDY^8g z;TUT+R@`^~sLmS_+I9T?*Z)~2ad=N^Zg>(;BjRXFZaC z+Cl~f+f;Rz!W}(h29B;(bL{brU$Iy~;jL|VG~uO$Zpv|{A_H~lUWgX4(MfPLK+;O% z$j-kDo+REqL6b3m_1~om-D2pgEZ7ab0|^hWRB*(izp_@*uUV@b&UAj5z*N}X$U~Pc zSzxC*iw*EHal-Rx^;ERS>3kjaXd>)rDIg{9CxbP6rXL}u^*k}1AzqK$HR_rq*P@&*S1 zHa|q(W%TT7Pk`Y`f8F{Q!qa5=uRgqX_^$Uh%|29rMXiEsy@05dV`2CFEu)R(;7Q3Q~2Ywlf!SAEV?@Kk@OB8UPj8PmaYR*%FU|XntpJaarHL>^W zQ@VUiH{9)UC7rbWHtQSLEO;jdtgXrE3VCrMD!`I-@sDbWKB&2ht{f({gCVJ7aT3Dr zf&SBC_lr=fO9L1xw!E71uQ$$SRw4yJZd93|S`52=sj1m1!f~c}9XlUD9#NE0IQ!k+ z-hLt%jq$7P^pPU~KmH1a<1;)zkG0g`Fr$qb;Dr-@yxO*IIeLJtxZ&}gO5Bm1S>Wpy zl<{ui0C4k-kV+;}e4tMZ&l+G~-`NkS9Uv9gutwa%FU$XqGoKsUD04`8q>yqSY;oUQ zw}~1qjrZvoMeN`WvEL4(jRoS+ER4@ZoP_p6wUWY?B^+mGdoR!-Je6>g7_#-y^Dwc( zwvomfA|TrBQAtT9!6t(l!dO^Dql6o%yv`%~B>sh&dB^em)UPQqIL2*0y}pUPks=Y6 zPi3#VC?KRaEp)bd)(Mid#Bv$CdVO>G^#g!yAaG(Hi$r}ri&T|%RrkE~x=%14{9#{&5`!!pNka9!U`8X>f!A^1dXW~ltJ?e)y6zvD9$pD8tCck{_{~GYj-Ei6elRd4d>5(kXL3H*CV8s z#HQyAKyS2f$H;E~Q(3km84*w7Xc9LbksQYyCnP(0qx$mIqZZCSWyoe93x}Ik& z`Kk*gZZEyxdlcJb9)o(3us<83W!{2qS6D0SyfIcw0xxds?{~ZyU)+Vob}Cr6-9Z{u z#Ev>sKeyc;%nsGW-?$h-ZwEYo+|RcWve>MMU=A>Eg@uJ#SXuK1)-1UU)f?=A8PYcP z)!p@irQ+Q6(Sl_hZ9B3}Zb1PMt_pg@^QG<#t!Xt@tY)-mP?P@dzKOEAYGd&A{%$28 zJF+mz`^~Vh9gD;tTVYdS)aTy^NaIKdW0e*E#C&3S_wO$iLYUvO>syV! z>G*;QHyFX8&30Rv0lN{OFIj@d88okO>D2_z5*UpPg13S!1ay&HT0vCI9U{<2FWJwQ za7mpw3BMs9YnIr$?jBYdYV#W2Ht1AU<0s-aklb%h@^aEqI2zK**|)0p)oj?V^d8bo`7=7li*k zpf_9jnAnrZaF_x=)uxxek~MPT$-~%<=sHOz7SIHlbe?{0uQN)ctQG zdIt5I=Hqp=ZEQc9#qG*uD=<8v41v-J%zgNKO;1pxu^V|Vl| z_sb*9ASf}C%})W^gWaojwaxR2;$PGAv6!bMh<`NIk#_3n6g&uj%@tw50r?bJ#9(T0$aZ7C!fi6bVDuGZED)9*k zfKNXDinyCjvHg4yVli5ixBGUazb~Ul4(Z6P2)jV?=m#{eK)h(3x$361SosoKK=)F{ zxg$rVPSyT{Oe{B(yb2kd)#uH>;-4UGsFm-l@fU_(Gds~=7& zDc_)uZr=mmhclZNxZ58RG>nYC!cMkP!^pJzgT%yshpZqiZ%b(7O`*R)o#(m8M9;PQ zCNH#8As6a{&xAnG@|o-)J{mcP+AZ19RfaTBz4Ai_!0GfJWaF__o*o>^+ge+t^Yvwr zPdVC@rL#Ta;N+wG7Yjg(ap)>n=AOKYz3q2FSTTGpVmz-hxzyp?%fy%dQ`5G`y-?8dVIf?Tv#Rm;T4%7Iu zgS1Ma*EZYQ{HI!8BTokNDS{Qf^f7eh{I-umP}}a@Kh)fh>O+l~g!qA8Pi$lTgz}oAIGI%%Z^aY2T;q`nrRhyx0G9;;=1ZEWuy`;!%%Z$Li<-z*zmWZG3fARe5K)@V(w}_tUJ)VWIKWiqr527-^Ao z7J_P`OcSN)@!GGNNW#1Y5o)#{SiK2UWP31p3%cda$^;WZG$e_SM@*3bC zTnZrq0fe?By4XB^WF`LuKMjx7#&3RJ9BSU?jde{He8$hx)rl z@u-mNKf_O`wpwB1-5Z++I}Z|BD@gsUe2Qqq0hFt;;n0Q z`Y(5ap7s%h9B~t2^nu`0=@t{RkfZq_U07_iDz&cH0ydWIcN$!I{jjXh?T|Mq=L1ZG z_Z_nn13wnWhbzvZ1u)2AL;uu3@Dt%S0a8Szs0E5c+SJg{cXhRTlkTfHu}^WY+^ce3 zTRX`M6f%!CyE;!*<>o^EL%XgoRnOi?;=qK5>+2HDV?7Z849~I=<$O07jM2!iOX5~s zo}VkzG0fNE&9aAMGMZX!#3MGQCMpQ3;<{yDHoD~Jp;>tw|Hx1UdJt|9Lrc||&yu5= z3zZaOUW27pyXnAhRMYe}4P|zy5WuJ_Dt|R2U5uZoLl~ovWx( zPP}b+lc(|PfBl))!Fv|~^6b@gvE3T~>uvt`LBGd3(6~lEEFkuO^M4y6c>oLhr}bV< zC)=&^|BIh^djY&V-H4#rU($p-%v&IFRYDEGD^^aa-d0LtBiZ2{p~`U7~OA)a;)0*r=eX z>5TouV){)q+IdQ-f$kqUhKq>cuYFqQFWQf|)}rMiz*+H}_bL<2%%HcmwUt&^cmGDE z2#t=;wwj%v*8>XqgpBm`^hzyPxH8Jst$`|MKg@SI8-4gG9RW?r9oG@=y3UJmPm^vI z&9Sq_9QK_j<1va`trKIoLq>z4AKGdoK~R0FPr*Jiy@B(y;r_f_^$cW&7ZkoMh4J;f2kC1uH;R9v_dF!Iqa-h}?5j%0)Q z{PXu%k}*lzesnO(*ilP+r26eo)&!g|J;O0>FQ%j3)SyeQN9$XL=topfKw8jO@ZH`& zzvIRV))woiVGmiCY2UIT1ObtmX?!m46MI}Lhm>-x^X^CarG-_AbJWhU_BR=~JV0qIAUJ*SETweQV`PWZy}W+MIzqE1%7FxUkd%^t@~9AP2&kd${IMlhNg} zbw|_v@rrz$fI4+c^CNt@%;724hFl~Df6Z#%-a3}X^rrH94r-yo5XQyDtun7#R#ly! z_JE&5mQ|Ds7Ga^qvOn?@uSy&@lWNdY-6bE)%2+=qpfV|jTHT=NK7sCg#^mmC_6dTtR-nXI-j z(6o2WGLr-$@6h0ZE1^rhz@8xC6?eDrc8HuKtU}Tphb0E+cNqS{$PN!2%&w?J4y#+@ z;{(l}WUumqTip{V$`Fp=nGX&^lX2qvv#+!}(Dr8~fv)v43-i&UIP|3*EEXp^RLkdT zWY*XAtlVPc<=PhH=6P#ycx2%NHO4c}pr;Ky{g9yUt3*0;9hT-fkQax5R9^FZ2;HV= zMG^<8L|5SEAkOJdfVnSimUb?*Z#N!x*3ewa@l0u`fyu6ApXoP1SYU$vA7KwwNEN$J zQrh_Qoyf=y@7vnu!;>FAyHpcnx#MwW0I)k-2LN`b9Bs+ZC+73zCa-5^1(VLd5Aw`j zP>MGUiEftP?`SXCe9S)?|C&wrB=x;|M%mV^s-p5TenyAdXHHUWDAdIq(*d9TXG?ZB zDOljq4)t6L8hdhe76E^5a->ojT(i=QIDzeIX;#VDzw7zQBzdZFQZ1JG;C5n7x!^3J z?clx5Dm>HO^3L_KsgFI2j%!2zo^x+L{jFBoj=wo1=%$hg5BS*ly$hWUMbOQN;X|}g z>;qF8<}Mq1A}1ztxHuDBEH%tb^-aw_8$|40I6O8@@`wI;$i?jc=H;arJg`~R>bnYX zcekMO0OC(5qds=V_AgI2`h&4_VjQ}NTT1i)%xai}&$L?l&U{+y2NAPbVFuuuz3K=p z_?jX0L=qVBo>lL#>KFuU?4b>wSs|8xEHI0mr^;K^`5Sh* z6Qy}8!nZ3cOIuIqa?TEK+}DSu8b)Jnl&o&an3y5{5)Dcoq|+t&l?NX#-Z&rYezv;4np8wW9_-!B+lEGl3?o!SU;I-9;$ zaK)+p>|76%nY+Q6e_LvWtWj0NS98^ zP&s2BKc1dIa>vwpd*3RPx)&M8tx)bi+0(+Mm<0=gFQt$aOXZI+o&Uc3-JVxgHrlSI zBxJGYZmFn$NAQp3;{ROdtum1S#auOKLt$Bf=|zSU9MGoA98R=QZ3ZSLkO8kGBotKJ zbWuHXNr7SXxNu+ZP^VD~_ zf__}?kREt%RjS=t|6LF`RsDYz1h6}zQPT4-VJEZ+rFVPoI$9%s!pv2)hBGy=(lG?U zAJVlZ^u+i4oVEri2;?)o)%N+#6Sg*rj)ei0#v>pyiJ+b%>{ZXM$}{(&%P7BMEgF}6Ha`AODZ+(@-J|njKf+GQXfZwYgpx8@%{RLw(n;h!X^p~|NWMKC4 zY4!M<@8F`#CK^h*_5n%1DN*FPOzD}y!?HYj-@Dbsd5jQN2h5U>kn#j=m5aEIZ}H}5 zRV3D$wNE$#S2FB=VW*gG541!2^I(T0ck%V#>6vV>)wHK|M(UY?F5IVc@p4TKGddxz zcXi=0`01HRSCF4K!yE!x)!lDDKBr4MEMFQ*f3idplp@X1|5T=Di8CzNakJfxoPoXN z;zY7FOwKyf#di+r&*mDIJOb88pIIR`KfKJS9eTPg@>vmEOe!Tb`vS!TNKNGX|NLfA zq+t(80!}2%IIKmM?IZIL2iIY55K}v&p?Y%)g8AdyR8I+K-^p(|q}b7)D@|PPS?A7ZuAFc??8Z9p zx-XM4Ow|EJ6;1;wKt+$r?V8(ne?m29+Z95#%2vqvpHh9pJz0U2sCt1-Z$Acg5X3(@DcgW=2OS24w~-xV@g5AQSrsaS_}D_=+vfKSrV&$ z)|1=ptgRbK*;a#LCgKiF@Wtp=9wpB`}$cx5QtK|z8k6%>eyHR{f`Z3VmQljZ?nq z+=?L9693-?11UTf9;kItP@=j3{q?Uk7m|sY<|0(Zy9DHn3fl4?A=D>e1ve|)%PGt8 z%y{t^B9Y$?Q*?}V$6qVKbj@AM_H`POAjI~y@xST+nI$B!OT$5P$ zHppHkR|Ab-St)3nae76}FrQShJsZ%3yF0)MOwJMA%Ck_xb#>u=F>6#k5^eYRM=6-e z9BBK6lU3wS8ZG>$)9hRfQ;4A3?Q5@KdosKsSxXl=^!M*3o1L=RIXwT83(Uuhp+$$V zL*GP6u^Ms|!^oa>#(4*PLc&XaajQ6&T5F^@3GtH|@mY%pA_aZ%?Q(HgI~{9=KZv~< zDEe3|he(Oahw$d!CBAr_5M%q+^=If?qW9=&&e;mmUz6#ziC08ix|oxWgsULQYzG}f z4ZB}pd#4R#ti0{8(t{Ndp|1*0=C-)`MC{-|isv4>6KqT!K7JoJOtAAmpF;nvJ3syb zw0~_{HhL!FurV>g0l;-|N~)lZ(3q-1Ad;&)nJepf+6Hm9oAJ^OBmhq53{%pzn(DvX zP0h4C95=l7NIW-wfsp2)L!@cG)l>9ooh^gkaDREgum7?43*a}_7YhSXEa6gSia;e&gZso0{9h^rOb}cGs zBWZ_S6z`pGWQxaMY`1#Z+RxXo^21!!KjjDg^VfU;PlQt!bMsJ;>!IFnBnG@aq@Mr` z!=xk0R*WI-RM)I5riAR|EnE&NKS41Vhi2)?C9z^nOfx5$u04Xcx86y3Fi~P>93s7f zK0SB&IgG-&%`h%qxhs8@$H)-N3P5(#en!>Lo++Z47tn2qJt7lx8wRmCx*qvkgMv6i zZ!sNzHvbdsmaahxfZc{LD=dx_rHSQt>gH}mu>|#txNSaACS$0n$kRaAOa;36Qj({L zm@|@c_fVP<$t7dB6`!P8Sx`r!Z#K7f`)E#CqxT=QwM$CB2wgg>B0H0zB;=LtmV4S{ z24*G_QH~18`!Nm|wd3(5@@IElZC++SiLsq*oxDq~c~9*3=N8>lY2sFA;V$iv$DHxo zgkonPC{Qc5rmXTQj@>~k4k`;arq1aKi&C>51q~&En}r2Kn)8Zi+3mrc<6^MFWMihZ zs7@b1-k#>L4FZvHCMKpRyx%LUCsPIJaCm_q0+`Iq=PL=?w%!W}$OJwHC7iCjG%M_# zWo>YK{-t!FV<94@1p}pJeCYt^n8P^gkhR?H$?51a+QoL=R>~1C3Bl8&=w5$h&Q<6F z&SVL{#Z1q%3Xa5 zD{>Ntk1VfVKUpY<*O>MrTEz!swxAwT!fl!JgFne0`^&#}geWqUJ9@exq#fcQe~j5} zyy_mcTtZzfj!IJJ988NT=avjg3G;vl?y7$k8 z@(`3-Xm~Px@tw~Pbgejm)XJijT;ZISHvgHD7G&jIfW6GfvCZg--CA)f1bSmD!u&z|prI&1sCe;H=<(t1ug~7<%nL{% z)xw{I+CVF6Gtx^IBdCBIU5sM1wSA`5{i(HzB?SiNUM;^I7-xEuZ#+xbHCib@jDAi} zoR2?0E$vzh>x@!n)ryCSAGn);a{VvDn+~GKkf%-EDSazbij8HdHSP{5j_H#|l4)Aa zZ8FCEee8sh_~6`wC#R1Pjf%IGHcgbuQ^S%lY(l>NF?YGEZ6FCdsrusyV#OwBfKTy`V5#_X(rbXQw3BdxwT6eD6_7~Q}0)EreA80<4~SuDJdr=+B% zeKR)ZDRh!Ubwb;6v|Fa++^HBpa8MG^>G0;*9M-KDq#y0tT0xC5PLi8pVC8 zyS@nRUnM0aCP?V$zBS8E>On0=W9a?r-uPh4WNw#ZXIa%dZ@YtW#kFvgbj{6Subu8L zC!`TEF}?RDw1qdi>zVcLBp>%CRz8KqsyrTO>yOn{6uUY(v2g+7p9y}RK%_KRoHSoA z?`ya<@!fjWj25Z&u0FsE3VAJ3vKQSQO?!uggfwXg_?r9-E1~(X$At0MAMY;q=T#y_ zB{)J--0q=5IGMDHPWq!LV%hAzgolS;>G!p*@TaD>y7;B2H(^~5mseFO5**sth)Hd` z6wD|lU9hUKk7934Z;FOzt|U^Kx?Iy*msSg7dEb6zyoSy*)UN3~V|mLyV+)6Jt&<10 z!Mvf_E1&umBse&PFR>PveF@Wb+jSte=*Tov()bs-F0H)30@Iw0#2Hy7w1!9Up~4qz zM{kVpM_jOan63J`qsqC6_TXGCenLo6k;qKKa&*djDYXr!C7 zYx4#58vmx|FfDkkFyxtz+}RiBS!rbl%@%mQr==Qn%brN`60$R$v2?-6h;Q6Z*N1Nb zOS9Qrx!{$4$j9TCIYXGx_;@vwhldmVLO!b}044QG)p)J<0>D3QKwdQR4GIcMra%nv zmhgtdiEXVO@20BEW=q57X_OCYcaphg>uhu86Stk*5?&T8Te?nKO1ivZ&_^?b;a^eA ziDU_!qPHFf)R>s{8ejN*KJu!mVV%tdrSbdb%ZO^bUNK&uaHk3+jE=(H0)n4nayVcz zN(a2soogjuRmD6L#8>wfH)t7{9je2H4dJQKzy=7pqB;7HG$XWQLkb_UEyH3As}7e! z)ng5-$!DUN@OE(f1_uPvJe2+CJif^Enz-6CJ{Rr4o-;;zC3Wa5eH_RZ*pFho{+1`< z4tLbKmY(0?sPFpDyNoT~@d2vuk+M`r#)zckcb#d8@Gp^(=;d4M6YD63=lncVXuI_? z34Z-J?154*nFz#}RhngUUwlAzzxW%bOZ=rjd8sK$&Sf++_ou5E zK$FzJ{=CMl7!e*mNf#3}oy?C?CX+_Yzw>Rc$@xa^KvF`&>zd>laCbS9p+Zw|ap3`< zZ4}!MK)l-eOsrR^mIY(iK>$n%9{8s&LPR5;3(f<-|3yx7KnzVJtQmXSv{D4N4FKoOK1xY3M+)~ma~9sgA&IsX#Nl*3 z*+oBtgkoz%ASGmO^u21wIs~r?(K2bJb!SwQ7_-Jum!BT4rfWYbWF*L|l5!9Ot3q7oZ7tu4BdaSfZeHiEiCx)}?!PW5UR4x$uG>^3I+fhj&b^DBkqPOr zgoJ_;ih`$PPG|BF5&4f8qxb+j3 zzAJ+`?nMZrsap@A&7LhgpUCd!`^u_4ST^4Yfqn&I(DC`B;dGnyg%f`XV-LAHC>a2r z!#w&D9SN4r-dzDPxr?MgiAnmY3Va@|vbIZ^2(jr-sg@Zq?K%BvB`F9N_J@#mywY%R|ormg;x<1(A4yfC5=6RR?mUS>c*qYi zPSWMy-rqB`R8c6_x3!Hf$Y97v@i?YxTI0K!ORTyq^i{glHC^8iM8J2j9m@QphzQK8 zz}^C_r0*Ta6@fd~g6|t=^1J(cx!ii4t-DISF6hjxtUdJI{r%s|P0krgR7)vM0QE^9 zAoktgtJ?uP!#_&Cm;e7sz7F#@15fR%+eQI~F&3S%r%Jonqmb}aDn-;C1;LyKA%`C5 z?z6vciI(U=mIowOWmVnG?C=RqliSC3XJ#WhW`HcCZK*f_2EY!}jX6nGCJS{Hax4WP zq^}{n?>ll%mx?odx^f2-h2ANwW!AL7F5^d|bsLYo2Cl;CZS!fx z=QM}t903LT^JC+ny_@q8-eC~8Wp#1Bx3oP>`ylt{Gi5WrvNVz(ra@|qrt5trGaGGi zR3c>7W8BhRSmOTy#wtS&_BmJqI^hQr;5xA<{BIdI?0lovvkPhH_7-5K$l9q_o5^+o zneYD>Avf@n%KIm>KMq0A;_3AM(!G+;2tH?E{^Dwwz{S1Y>e@G7%S+Bccpwqf`9ihy zO(7QOvvN>AY4_Bn8Y}Rwkxg3b+x)H`8l|kGk{L`vZ&=3rMV0nz<$C~_0|>%+>v@*U z?S0uy%eZJB@73W6_Ado9N3WL5=zCT#ipHD>_L|l-ts}wNsrAMCn(s{O=VmB3{+JR* z0NVyIGkVDZkwAC0l`kTY2utjj*Z)T#46|str$^YI7|5f`tRM=0Sv z$MWD2*eg}%Dt3U``nu;%Gt|uxxzssBT_^dsC+gzo*L2zbQ@R})F95;+xCr9W(#3n! zNcc=mj%Qmvm=UC|>Bs&*Qei~dqg zQ<8D)E4b%hzS!@*CN_-H55z3b z%Vj99&^J&-JV@in;{_|MC!10veG+U0y|&FOo68T^4=oN>EjMwt!^gHz4AK0k-?!1n z9@InRzwvzug1pXw`0yj6Zh$!=T1UJ)j49<1GRHa%*LZprp}dMg`QnJhHjZln#J6J4 z27_2rKI2(P+EN>-^$1E?e&BB?!dxV2NR18d)*SmSfk(U<}Hm3(y+Qv zM6~WZyHi1W%0BJ`EiMjPYRNCZe~g=?56!+lN{@FN&>~DAq{+R=9tKIb=+rkje40~H z8_gQjxZl}#bt1^n7S@jEB#LyIHOZiL8*C2My7CSH%v4;d}euZDW|cul1yG~X-y2=Lfo zPVl7MRjU2PZkM30?J{;OuzBF!>pb@LLe+EC#jQcCTc>qvPDGapc@EOY*85bNd&|v9 zcMsRtNwtw;M@vaY%gR^I7M`AuyJxaZxv(wPD|l@D2U49TvsU155#IdmRoe}o-(6YT z9ii*^`meQ0uVPhRX6AOu)^{#tWo1QX>ve&6R$HLXnZduYsi|a2E-=`c?gEL5vo?^K zcVTpX0-J2jBpeAhQ=${D%%PepJ!nk5H_01{-?q{^6VBo}GC76!Fy3nB*kUlX_3yHj5Bhv*3o_wb|=>P@l>hi%Ij~G zuI2Q6-i`a4c^8*9fWglljdz{iX7?yaScS48&G*AzauuWRU`0*!rwV9vToBV|6aOh+ zk37by>tohAwTVmh`cWx3camQk((cmdn>R(x(>YD(RC9Pz5HuQTbAzH64(e@ueKimn zle7n)hbPKi>o4wu1MEM&0sH&Q4*BPf$Wq`a7&y=B2T~n^*sLqcbw6S8Z+a-M zOizSQpCb4ya~{L_`l{%;6liq*qK+g;npN;fr0GJ06ZI~uEJpAR43W=u3NGm$igUoD4M+5L@NQauISllk zjS{saB#ew*NBwO<8GQ20mK5R%wD|Jr$=*p8IL4V0)H?X=dXb(HlGdK`@P_Qtv0ljA zy$Z%J%}!Bc2kqf<^|5YI<&GR@N?{lKBp}g7)=edT$zw$>!NWFPBjChy{{V8v`?NRUJb!t2}@qjH>)z7-EP7-_Wv(j@z^8>pbg2St}x+aUJEX zMy~S)OTlVBlF+v@)w{XLXhA4CX$W{bj=0=`uvF^!Tj56G!&~H-;)PQhN~%o+>H1Rs zuayZ&0rLpxyaM!yZkgJe>weSAvtvD7$sJ5vWI|I1{7)RaQGK4dshJX0*41U(i&Tn& zKQZ8{h@+F0QyWPu>6ns#XQ&=(egg4y`&Q@ZA4-14p4YpvDK~}kj||h6AZG=ADU4&Z zybb6ogBZA`k6{^9hQIRH(_J-}8l~d%h$RwC8PrX7<8YGlR*>_4%n9_y)hE%7v0%6; ztx;SAJT3*=P7Kb!0pQ0MxRgTY8$sQmLr?61BH1a+tRR#-TVV3vXkgtWAIsi56}6$mWzJOjWu8tJtx>TVg~Jw^Kv~St{abvXFCX#5LVtUZno^E$90q55FxFf@1oQ64wRJ{|WUY7dDy_P-dyOO` zDm=dE&*#T48?He?IZ<&=(Q-5dlU^l$lHry@;Pi+MzrQrE$Z2=tu^lbtJE4iLbkpV@ zEwK-+jeWRiNQ?8*qh~-IMGM@^_#J&5ROnzt*Fk3m_ooA5We)jir?+bDw=8f(ir>8@ zB_*}7pEj53mo4rBsMUkqu|yOxF6c;L;z%wI=ec!f<|e~n*9?B&b+`KHnxcBz`hL?2 zBGrrY>G>=F3Uq$?S**x`@W^VWtimo`1%>ZM?)?xQrYQ)A62^$9QxZWXi=G$TL(2da zMXZ~1|KT?GjO2PZw^6tJkwOCd$P0N93s}_zDwwxdRo#Q+Q2WF^ zJ*%nJVxd-B9AwDtYXa1?PD`H7&N%Rin0SK4J>Dk*d^axM4Z|B2=Y3SSXCQ2Ce#}sa_bj5*rqYk=sub_ z-@s{!$lbiGwjv5xuN0UvVne$C})9{+V@gKXLUpzAtHX6?EIu- zYvRHMgKTv@MDg<%)UI>N^er+ww(cse*v<6_eE0n(q?YEczFHVBluaCKAVoqg{04oM zA9S~OPt3wC86f_hQQ--+u`{oT%j4>DshAvCtoO_Wt#26#kE|?fb8n(9@4nQxn|?zGc>h_(#hpw|yCg}#s{H0@C*soe zyC%NvEqO<&+JheT#H_{hW!t-q$W+Fi0;{mS&%u8ut9KGU#lJ*_@&UnGNqRZksuL zTtvM4=6glksZ>zn=o=w8xyp0CjF3~N%}nn#+7QX!{S4;%VqBkJcx^cLL>TpxsH?)) zYupSvi<|l-s?%BIcIKLrICGle`Zi49%;uTDi$1ic`b?p*-m>n7C2FLrx_>YmL%~?# zD81T&Cc(C+kQ3x_ypNm9Wt~XYjJsnnR#^QI%7i+$RJnccAg}!s`46l2Hy)-!sgf!x zDqT#Yj0qWYAAnv6)9Nxcz0}guV-!T|eB$hOoKK@BP?3=e+xfN20g>9f3kwT1D#>Bd z&Dz4)!cynv9mzz-RTk9P#o`_O9vfd4l+&t}N!aAM%uBkJ5##L-?xt2ENGGCd)nA= ziYMtU)!$Fh&niU>LZGR7{F~1|up>%i&={n&;c@tk2)Jl1;+juA`TKes*a}^z6X00v zr_oHC3J%#MvXVvml%sbymbej1qm{_r#wog^AI>!hJ7RN{Y{xcMJ4l0GPTB9keMga` zUW^3D%C=PqyZ^q&dE=1~_7fO!W@TnF>`tqq6F3GlK&oCaMN7_O(&J@jiNA<d@2I2fbaa%DLM z3=Hg2@U`Cpz#0Sq^YQ|k4yeCwZ9IUl#DTNaOcfTFFHC82`MlE*gPY!IDs6Y9*xWc0w}+GDPZny{Znrf^y5gS-hOb_|Iv?RaF^M-YH7(>3x3IL_^?KAOUSEN*Yeq?VCIp2YDo}Qj64+BhjF_zk9E^>8swL))4 zM^T_Px$Rwc_``Q?w>|PLUsOUunP8wzz2iqA;?*Db!2fwO625Vu{It)(;CYYo`Sm;8 z9AUq#taZ0?v95@knsc}MSzI$1F$syHGqUTOgL0sEYFOQ|w3k#gEW$k{HPv(=rk~Yn ziKA&FO#FP1vDo~`Ujq5r_Zt+OO2<4aJ}uKnUvKEa7tvzEBeyTy#{AR!Uzdm_Mh6SB z{ZIEjk8ZzAOw-0h#G15x;+2Gjt%}-g%OH264(;(|K%5$%OuR^weD4gavA?||1FMf#m{Zc? zrl9Hlw;c>{%a#OyXG(L&pS+`Q^_P$;wwe?$LC(5=T!)`%1v#UZN7AZ9QFC%89s_qy zLQKpclROq^&n}NDA5Fe=39X%*n;YvTVw79&!_sl@=adhlwG|e${w1*LhK4-ONJSOk zc6ls)R#v9nnp9QgkbJxzOHRC5v?$AeFWlG&T@)?{*H_NUu*sayq?S+I5v6Cghj{p1 zq^*d8^e+$m4-PSeA$~kF7V81&(MXPK%(rz1($tOAp_rmZ&~$N)Q7iK*jaovU^u|e$-Fv(;s6m8Q*V*A4`)q)hLh*%oMPhb*c-;o@PFG3?iLy9^B)&dH7nB zW@<^v;50KeJ)7!Q3(2^z6sKnhbKzJR_c990#qtD;$_1L9Z%?gF%@2yutFf(wYe{A1 zf@J0Pr|%Z5HkxL5KbA2Pe06e!SAlBf@FOV8h93z%cSonCeGE;zHLaHeViXcW)kZ@; zE$`YHG0;CiO+tycTAQCPC+S}{TibSn81tbwu zefS{X&S$!_wl==r5kQww?qyBGK&xcFcf1_h#&=ihsby#Pf%wNm(~U2Up>*S%iyKS7 z@%7uu>wu&W54F48RAb?7OL*dVq$BJuS3AnbSuI&nZkODy)Ulh85f9RX<$O-O5qxw2 z4e*t~jjzQAHAxxKwzq&Wk4c)jEUSGQ&_=I7^cE)cNV3i)Sc zluJ}Uo!L4&X9Mxyo4DgYS6!CjHQU@188jO*&bFk|cp3-Xf`Ws^`SeJV0$l8F&i806 z%b+3!)^Njy;m9C!?kW>~86s(ooSCzwx%LS!B>Mbptnf)#1+2(d)^D)lFeh2~@6$cS z^}R(W`!d!P71f1Pd0$Yo9l>~1n8O=x8W*wE#nrKTU1`37?)BUcQ!{f%rfEP>V;_}4 zbLp4I4_F>`UeqEKd#dhsE4Sw}an5^!ZupJ!jT0-qkD)F2ysj-|Rdp2;<)SjjZkB2x- zhIh+6G&=x7Uo3*#geB|zqlehpa$cwxvhiNz6st zCpO)>jsb^qXN^_$!7d6Z()|V~Tkp420zMHe83K9Lv_XV=o@|&#HS2wx zH>WnN^w^XBelM>Jq1#yT6UNP?CbNl>G@A1r&HjbXmG89J>AC)$1pr&lm7F4yiO*&> z|1eo|EL@UwndbS+!TCg>`xq6Zau+>sXj4$^|Jt9%n$T7I5_%x$3`Jab&WONtuU3La ze^HXHgbk=J#n?iR8*9IE6`{x};<|=hAHvu8?Id8&1TGzwQYUrh-+OFX?RVX^Z5tQ3 z8d>lXl%J4NhHA;iehSfaf!N74o9L-6^;V{VDU(iC=zJ00=P<$;ZJ zA=?m^6-S96Lny-0`|bg!e`4@Ew^l+{h%@SyT;TrX3k4T@FVMN6n^8BSI-c!!{L~%O%ueknL-$iM>={x3*3%dPw(gh%aDJs*NfIUV2~9 zm9&gxiP0c%pvsgqEjvr9kf$8-7H`P4fPB4FW815qI^~+2q#{P=_c_@aG7kWJ!RsB-aB#G@CBynoxBAy*c`1VL|+my zQv)%MeuTS3C1w7wx5be3&e7_O8lBp7?yC5r+bx$8x6dSXhhH;A(w6be9UJY)*n5MW z-{#oU>D{M_WLML<^EiXNre$w8I!5iczm++x%fD&u$ebo&IPgK+W4Vv}>SkbqEiQvC zWPa%OwwK9~a42hWA-eLse*_K}+(_@Z&O@pP(nH-Xe$m8aNpkEC+6_SkNrigb{qX=h zBl}FZR{fEs;|*|ZNlFwjF)0`jnV4v_vwLH|t7%pObjf(w5wyB2LTYw8Jh`02>#6DM zasI&rBs6V39$u#mc+zGE7%s1^br#KDjJZ9Ul8ze+3HFR=|HZbws~+UU`pq1;>t+_ zLi6xgW%Va({;Ddha~$}dQo}sfosXDScKW*7CENG?VlT{3#ft}yZcQZHhloNtszB+r z>;NJagdj20Xi>;rCk@XR*6k=f@bNMk_-OC8c960?QBN?7cKG0_VTL+{kxv^sLgkGWy3tvTgIs%@h+a7!tPW(8ZXjHUtxYMPA zaL#$v@w(k$sHu8xC}Z&RGa?CT>_Yi|EE3!RruUeGcvk=bFP}zR^zE@PuT53cw*s|; zxC)?~fDUcLHf#F9S~KQpmeArO6A2aZ6KzKD{>gvnWs?YuOS&1&c#Q36B*y*Q&)S+_1Azz6u)n`?Q zvcA0oIbo}-TeYFS?vf;>=ANyPNR{NEng59unN1JU6|+K-Zi#$-q^cQ-PexJ|pjCh@ zzRBOFpeCl~eD*{8>dQNt2hGML<0Xp&!lhuXU{s^u1CpN9mvT9kJo_K-F^A1^1h*I%~NMpL;`R?wY6Z6r+ zheY`Dl4v?_i=g@Q7=oc~KUakttb&8`<+Sb#y(o#u!&seo7b-68u^EZBPY?EjmCn+| zT4hKk)Yswu1pEI6QM|v!=;J&Cd3H3gBRBNJ0nuHN)zu8L-|)8<#(sEvi=)=ZLl`$S z7XFC#TTHg7zL9vtkuSm}{kAa_hEuKCqD7Jq)n4Yt$^?srVSH{RyT89j+_ycd$*1Hc zE+L2F7G@+qiJz07kYVV-ha~nDt^bYocRy#DHnNyyR$8dZ3-+i4nk)|_gqmv<+?y(4 z{m2;EYXGA8P;Kqg`sw@3nywDUyn@jC#%#Ap|7?1HCYF3#;^##&xAs_+-<>yj2sVTk zCi{I@OH~O@j#iX>tD3^YNyfxb?JFZ&<{4e39%g_3mRgr1z9%D7X%A~lX=vHMEqz_S z70yD58$YHV{`Npyvbaczdqh*2kjvY9frePjE=p?k<-VU&8ZX0Zr!xip!CT5YNXcfa zsSwiJ-8>g{mdU`w`^?IZhdTFniKq8e0T8c%-{^-2pQ8{qIrxbxd&)$U_38NAbyH+> zXu}cy_zX0-!vD12-1fL=ut&bqLQVK!81&HQ_b;5jEDQ_=1JH(eWMt$G8@($@;3)Z; ztFR#1G7eWDq7Ik3;Y~j;#rRa3^WI=v(zP#F`fVo+IHO!^$kqIS`@G}Icy9}Sw3u%l zTFLDvg5{mw;bni$oy6{d=)r1A1laq6uW_!l*=5$WN zEwcA^HO-5bF)GSVtL&|54TT=>tAIYNC0qk$D*TU~nbM`Fpbe?O# zu-vbnW4?(@;c;}xw&)rMks5li$Kl98T$=|yDnX4KyhieO5O1!v^+-K3-8L zoGxo`S{-`dE0y@(q9Xc9Pk*eB$TlhtOEVlFZY0TUVJK`lU%|H3HW#D~Pu+TX;xW~V zdB)3oHSdODbl83?Gg$&0maQ(LP@=g`Uox|HHrCkn`<~74HepHbkDj^H(#){|59HiJ zB~ZXZZa3I7lU3V`@&|BKVD(b;A2>Rc_lGhlzOk{1tg6)M`!rB3Ig?64BBMmxO%AuD z`4Rwu{H_`skJ}7SX2yFWEjUj^X?Bx{*AvXjulZuX~nqY9XoFbh!P(HDXLyc8wDZ7dZfLteU2g)$RMPr zEWZtsP4MSqu+Y!J!C-lL2RX|9X0sWQ0<&+>n+sv?e{A8tD~k%)eecUBR_@7c3xOy7 z;J1k(-Y@=;owMHz9HpDsTq)@VXc1={mo)wa0(4V89G#^^4($CP1v-nif#QYIj29U5C7?`tc$M7rny<+uL_46h#YguV-D z*^_`kpd^-^a05d_rRu7%sPSykam#w?f-@W*mxz66eEXg6ajUaB0qK;s)+{#A0i6f1 z64(S?%gd=&01j{G?98IR64P-B)({4wJ*@|jcM<-yviyZ^+C-y0UEvkX=GK;+loZ`? z`Xh(O)tacHyuAF$^iUeFMlC%f-Q8_IxTYw5>so(lPY3kF;8e=iZ+v zP1+FnxZ6N|nP}{{$nR6q`JKL%_SAjA zQzKE{dckFAU=Wd*_=M?CP8F*lePCy&Jmqn{J@Og{Yy*lKDD->}F7TXOT=JhjJqNnE z^@4zYa9KK-{-gR8ZJ-wgK!9)Dj&kgG-n-rGQbYZ);D4#8t|_2rBDk-|-l7(L$s}$+bYV0c!iae$Aj*oEPemcG%n_LM#3zDRw;H>UBT)yK`v=g{)b2@V%22P}0 zxX!tsxzYa)_OpgPvkPMl)2O~&Xtbv!;3t#;!nX@A=h)b0Bm|I81^F;BKh`q9w{IOB zWDCaw0C33C(o#%(kkkjKL+t&Cgg~B8$grBd!KE=SYQZ2z zPHAqn3i2@CS%TC2X7)d^>io;Z&jh?MxV+$!2bR6K3lF?yor9|TvK0{V@=o^YV-~-XIJ9T$0GxKB750B;DTyEG|Dr>P{4H3_7R$93GX6L^HTsfr&k9|tpZL#w^B||{= z2sLCM=pSP^npzmXT1mhgt})g#)Rh71QJUTO>geVIrH?1omS+z$b=emz$3yR=iaOJn z3-F{5#|zymo6@+e0Jgj-o~ymxOXX$~Fug8jBL8iU%&>iFcAUpDkDlYau@ma&bp6vAUVD(zo#OQ^B%WUVQ#>C)w(D}H$)fo)JyCXNCEjM%vG zl&$20+03+3374V#wiTKFc~>Pj_Xa4(E4Rk6MFoEqYW9|^6R=nn6Ul@N$DDkD&g2=V zG|^aWorq2rusbBAVHDLkbEwik$u@3`BQsf^k`w$IO2{kWdpuzmD<;OMKhxIQ zuI^v=*_8Cs)I?ld{6-Q*r3>%%YZyR6lLxq5fHn#OX#ib+gN*XJTlhEHsWg}v<*ulG zREg^&@g@Eyl}>#B^FM~&aHBDd(|EppG_GaFFb>(tmN0gVnMPz?twaQ(>Qdw9p|NB zL#!=Um$qdK{z#BpD|9&Tc~el zLK7YbIAGj?^LL!ABAOT89S`K&0YH@4mAPWR;7tWmT zmBB5bc*upGE*-s~niIXW2CsO5vpb>-gSZ~VI7;J>r(CI18&V{K*$$3%Iy^o2%v;oh z*VOrSUxP-p^DgtkDRj>umDOgi;SV5u@vY~Bd|c`3*Db#707UL#&y>_V;i}q|t3!UO zDb|)GigoSk_?00k(1hf20zCb_yTk5gt&j5_zhjFL?M6XW!`bs>2*42|wmqT65A9l$ zuudDH_s_aTuUfAld`%H?B5_N~KEz&x3T=ypjjzson!Ft%XNhMzSE3&VHWpM9#xt+b z_m2-`M$48&0@WJH(lBI04{P`tt58{Xw+BgTaM<`aV}rodxo~A zv|Qh}44sHjw~dlF^Le6>hbr$kXEV-L&(bOw?6 zJE2%X-M^by!t!V!X-TFT*Ln zN9&`#cQG~}#RC!LDfIm3xEC?Udv@tJM>>2mITtw2daC$ycZ|oHx%o0K-1&+I;XI<- zLp+n3Twy0KdmlwdOFbgjT^Q^!#rHp;2nd&q4}k~Ld|~k%uUF|Om6k!={5exCtl+EZ zSjnwbnHQ$&<;|vAn{Mh2TLj>@^?CCzj7>YI+%!Gk2RWrSmn_gNIwvWsz!6o!Gc+>A zSs40ixV+^Z<5$%}Lb_1d;rCC^k5@TSN#3>>-R~F{^QIKNR9^4i(6P>~XCutB z7%|M6FUef)|8DQe1L>5xSsYk)xCoL_jB=ardDN4ANq^;pM%*@;8{Lg4t(lzbMz1Qu^|8r9GOm9~syZmlr6e4%WK32W(-)7JLl4?0pW-@iddN zj+GSHH}Hm*quq>O*I2k+B0N`Tlm=e%|&X z%1uTdYjsUZffIjf_KvW>T6<(PuSD=Ay7doL?RcBpgGVRowY^$uq1@yu{?LPbpCo`^ z$qJ*BpVQFz4a&I<4X{`pOd&eGy(9#!p07d1mtkn!lK7tJeHcU#Sqga7mRu8D9PM9# z2t9`@_IaVdI+Csh#|6E+vu)B4szzL;Y^FLmR?(;qdkwunN_Io_M} zl{rm%cRSUS!FFs{{qKkN=afR>QKDG-!nV7Q2tz;8IY1bt=un5lT=CjgPP(4YT%^X^ zma2Y@_39MHR_lJ$rdzT}sG{l8C@dfTajjOyizAtS7?QD;x@hN#viyjsZoB)|1H>fZ zsD)*l7I!q6I?IN+|99clzU;Ggv3oVG=s1#)w}d=7g4l&iL*`}u!oMSq_~%1#*(|VM z!8(s4-S_f8M0VPEJnf+Al7wl)L;Wbc<1c!{iBw<$?nu0P!w7Cpw}jc-ea@Ij#eI0q zXM_fVMa*NOqKanN+^?9F+U$22VomNDy{=jOKcD3_A14Viw%X|LV1ZRB+!M7 z0tONb^1y?^SdQ&o)obqkY;8|nx+q1fb(OuZHm8G?_72BEBec?m-)GLpJt3?#Apu?-sd%)1fcrvDd-;`G| zy-)G+UvrDDvTwA`ZBSq~NQFIBjqJL_aebw)HZ4wCfT9ejBLHXeV zQMTam*IO7#BU@+{OPspqT%7c}OpB6i^@UVBt`6&+&dr;y;*cJ74{mmCv7W7YHXep5 z^pS+dIe$vaHxj2~_2?B0SfglDj{hY%RGz;v<(69#&>JzP=juz&lTYh~WjD2uE7Qe> z62rIZ=E@&e)n{Ph&2?>atGN|xU~SmH(#fMOE80o%dDQ>+=ejv=z=rZk9J`Na9cMDV z)wBz;nQhrSZNJnxDqp>=K8jF$K~txZAcRhNG&3~CLcMy@i{pu8g@EuiJbs1$#8eZfb?$>U?nW$1l2)ubYxOg9zE&Gej`uzlpk@I*G6v4!pckzkQz_j zzCSVckOJ3F-)TkfP(6-7%}z?2`Y*j0A8*Mh9+l0&Hbu|8{{HkNNda_aQb@(=3o*nn zaO>?D(8E*6W*yWs^d%Bgc^BL!Vybekd^mHuW zqKbsEe5(L4&n$0yd;smwmJ?B$tmu%x^*N8PP!SC$q(tH0w1@61J-qUI4ocqr9J@q3 znZF`SG8N$87q7#R3&=5Le0QUOikDuXZ_VWP;^@Y3s+Pe+DCL{LtLOcaXqcFv4`xag zuFU~aNoOYb^CZyno!y2-|9pS^Q?)DUoJQ*;%N%WXYBdo8J~93bMd*bNhw2V$)tj<2 z#!bgG*#Bj-LGaK2ADazf`DYqBdd1AP8r|hX&6qhRs;}Rab9{*QX3^z7-?EDc&Wn|W zp+5KvE>c}q)K3StXgMU0f3RisZ>-u1wLp>Ln|FUGTZv)GYWsMzQzQr_C%cwx(>Vb`TnFVpS(Z=658iRgaO(Bto3=TWmy92Z`n_ zW?MMSG-Lz6&jz(s|LPA;xoUy+50O}XCkH=Cp6AMRRiV;Lo+hfVJ9gBRA|XaM-;laQ z8=zcSL5}y>ULhKu$=i{}$=tHWuvYlCG=&_!|I>Ou7$a$p1Zqi(+JD>3SwXd#(WLqH z6NNvoSr;4d<=n!$Oyc2##W*Yi+oaMh_{;X!=dz8s5$GWta<%SRsse7wUYU$1-+VT1 z*4Nj{!W54Ts+DAKs^-3K>LIFmoSvh?_|Pp)RU+glK0!g?Gxqg zR&uVKWG!)Pe#vBG!oel`^u)5FD0T8b{U= zotj;(r*wogQa~xCv=F${ztjks!Uc?Bcyb4`<&@VAO-(a>{PG@zLd^LCKO3Gse*yT> zV<4ZKTOfM2wzdO!{hggc484;4ESOSiB#uTIM$+^TY?=emy$nmW#zGe{d^45i;TD2_@_3Kt}QR!~}8l5S0 zHpJbzjc7x)I*{_MkJ_w@3_ZQDYT^<8U~J_}Rn5;9+3BDJr5c|x*r!_ews8`n+4>0@xn(&DZ4E|kCwqN&ewuMLb0kOY0~tDsQX1J-2o?I zr5Oq;B%FJ$EpNPPxt*+|h zHV+8Q^IiCzYiV6V@5Ah6GRXi$`)%qWDy`1_;%tHqb|C8x#)!XQp@>MiKirnbRcuu*eiEERZ(hXiXR~^>UWX8%!$UYA=6Ue7pLwx z!zY0O=6WRR?^ZwJB=IBASgL7`^PP=|1u#^Cu9qWsI7@Y~pfcpP4K?0}iNq(9-Y{9NM?8* zebxp%<=(PoFc84iC`6bodwl;5?OU%>NYTOhMrG_dN%-Y2-bZC^GV-n1HNzRn%74+ZtX(d#Vk!E;V2Nm-_rha zJ*}mnm6vj7jBJH(zKO`0|Derm4Fp4vinpinf<2YNg*3f`P8X|VQeEGk6L=_| znU$85WmjN?$EnQXXY5d37a!lczn-mGqrs1l!H7Rd+eyYl z95=`BIT&vCm#D0Y#s4g2H*0b&18yykYGu8mTIbG-CtNj;?1veU%7zt#eksUXXh_9pOU&j*u3mPn0K%Mr%Q zl&skkoIJs%+$yYi_YS*7iP_?kLW-2J;d@L<3IZvbwRWks}c3a&$JCt8*4SpyA)YEN4=p4_`g=F`pOQUqo{~gFKmBS7AKikgopPwo26+cj z4e;`5&Mrme{qXLL$HY8JT3_R$D`I$Ip91{a3g8rIyu7Cd{dRVcRwRl!6Pw9ofNj59 zjhlk#sZYgMYYKWG;mhemJ{j%k<~yg(+Y)eDZW(_PbDVw9=JIMI=rd@y7xlEEcCv3^cEa7Dx4;1xs)rz)6nL5=%oJpsE+2^0rxgF zp7Rfj*{mPnQ;WZ`brAX-f7b=raNwA0UID2bnecsiTPI4`k+7tV0-KY_(PSq*J}5Xs zXF)leIZ603QRS3|Din0=^A$L>2Ay2QEcHDBS!aW4ih|hmqd2WfXzn(C~+fOJE#x}Fhi`_-sabY`G zvmZB_737XZJr~jmhO+juFn0rp$Ul#6vp>GSo|}4_ zmf=U)GeOTN4M*3%ShvOWrx{GQ`-k3-m>+cfUAmD0MP|CZxbSR*(&b;oqGPeUcV=Cn zlv|e8J9lCfn>Uk$Ai~hgX0(u4NDq#N;C#w3eJSCBrfoMZRu(CQ6}7iKEILn`33Ut5Y%Mod>)3@jvlHveEMyHTF3vrcNueo zn_FB|(AFL{A+9YQ11uHD%EfGg(j`Kwr4%s2mn*Nn&!8(GI6p^c|NDRbi%ZX-9Gk09 zHv;TN|1U!PN#p$-pm5lK3H8wb_>;TmKWW-sxEj+*zxQFQmVYo*{(qH&4W@8+7kE2K zt)|DA>~H>doqv7Qf4`7=whpKL0`N#B`+aK|1kM7>te3%fz&QVJf2lwm*yEXfFdawz zAN9m^7NqSGOtKGdZBCl}-6DeZylmEdLg`{DktcdQU$;EEkn)9tmj3A?+xCho4oqjPf&gG+llJH2^$ zmZshPcIfM#Nxg)b{q_yOxW55%j>2&fx^XF=C{ z0cgcoCcrRaYUki!AtzVWllA4_U+n)LVZi$~T0l-;K(}KePP8&{1>l6FVPwpAg=|km zkrOGHnwrMC=>v^gS|-1KyrOaVqN__xz-j06`YpCVwK0EI68~wJd(&2&M&Hs>3Xlu5 z*NMcR6HQ4P@-COLx}qXuCk+($Fjyk9@W>lLduI;hbSQrd$L|x=T9m59M8YUy?=kwNF99=;Eu&wU00`^kGdcOVIAMM z`D0emKZnPa$5WIHty>$n^Ks5bZ>Q<;5~pL?Ku?cfn%9FXs-yXM)};w_|0AnGAM$JyIR}cH3Qt6U-+#{O%o>>! zONTc2-v%)7z6tS@t&(^Qn!L?kG-_lCWI0TguL4#g3`~-Vz1{I_vaIgkYn@Z9po>HD z>j27t>gwnsB5o(TKwOF+LDbPHZ-Lac%mBDl|Nb_QTN5D8S1GCe?rhKjY8FPb*y74E zoWSf2eEQgDq?y5h<5M9Q7~vTok&(-z?r$%n-JLgiLxY2}fwWfY@}ijvzLNioYAIt2 z?tO{!U}c$o9&kg8n3SH3n5h8!4OOrd#vZ3*X8y!YuA`%KLFXE#sihT*O_CL$YPlW| z9$s%oN-_XAM$eD7x<*E1v<8W!u_Gb$8g&!iNPJ=dm7~vyx~vYErzn+}kWCz)>aax5 zP|(V$P(-^X;a~svxx)s6@^sf-wgJ!@;MOr2J=1xaf(|st3l$N|s@4`HcicxCT;gLkV40pO-G|GLw@7o3*F#Paso#-XwY77f`&@&?Euj zLoxt0<#4(#a);W^MW$I#^_0PJ5of1tKTugx67s6Gc)tnY_+w&Xa?Z}rPgc@_EM>*A zbWE-H6n}?L{u%}i$1l4gpRM;fdcOS!*zV&S*-gW$j`jR5(}dv%Le3dz5K zqO_Yb^>tGeMzY467;5Le1F2Lo!K=+pgQmxaTh~dB$cYL0=_?@SGllBGR$x=88# zvYlTRkfWwZc?R}76+8o;Cnm!I^n2D$e|k;I<=@PT1P-%) z?5Q#w+$DOvf^EIt7TkJg_i*Qm@wty_B|vu{<>)RqUOR7A8x$K|@hBZiYVLN@+P$x7 zuHX?VCnvW*dri`JxZ;)J_Oa|!h6ucgU_hmK`~8ImFsD6Dnl#kZ%rh?y|1h8Zd#YoH z|IP;F(dMx@)PI0$Y-CsV{02lGq%7SjRx8Bh9IclE&P2q8I!kWgDIM?dwT?(m#skI$ z5fmam5}A^MkBSuKmk?qNv!Eva2;kJ15{~EH5CBwq>yTeeG&?Nygb_)+&2qz`>!kDKSz`a#>)u%93>tW?35*Isznd|w6HEKe0OJ6nC)n)_8=0HIE!vRY@D=C5};Tey#`#bfR@D^iVPI5(;+6HaN zLZfQ5BsXaK!p!dZRvzY5F%j;cm7@Yea00--p8jcHZ&LdbNca}#bvu8LA|{O8Xt(vo z64(R`3=U2wy?F7$^!MtoqBda3pDEQ4RVmkQwYt=|wEiTt?UdW8lb)ZlnUvKL!Kt-( zR_PGLpCaM8yj*Zl>Zvr7gq|oOhsUTwZNBSU8jQhty%42?r1Iub$2Ob&!b4E2A3Pi+ zQxXJ(AehxS|E|eJtatgcc_XQ`zr@Y;Ws%Ry;rF1u(m?s8uQ>>IpO^ky73$d@O|a0c z1pev%y43Q?@BAz8LiA?J#1;K4T}X4JZ!M?g?IpGECvah!v-5jcMh!$umeb;>wcgAI27KIKC{iyZ5hLTDUcD1N<~kf3ruthf`Txv zE-qsYwi{F&90^%jS$zOF?e`W3n7+pM-JS$}K;*P~t=Y6=bMnP~D-~t!SOL>IxIeJu zaEN+M*iT*OERhcEFq$dT+2T4m7uMm`kkNvk)O3~8ClwWL?Hr$nIBjuXNRbwYwzn;%l2x^Pev=2UMOg&4b@n{FyH4ggjNqGcYkRx$;sN z_Ux@)Mh%41VS85CgQ{X-yT-OAhe7{tilQwf+J+>0#7Z(oA+7kGBjKK8TPDMPTa=99 zcp`nEqno0OvtwpPBwtWr2q_^Mr^=h%&Cyf4eshN`2K{@n7EU{bH&lAVhTCfW?mtOW z_a@d@&1Pp)@s}*Api4?YsvdICkI?*@f{=l0-Uue6wq-49Z=sOJ(-yrEy0|&}fEw>d zUQzN_O~#Qf5|m}88?l(NMb4sWy3N{Fn^@aLT_~p#dprv&rAph#;kl4o`5LQDwDp0@ z4YBJxtLy5^u(?VMTXd$eXnYR`ZJK++Lt(?*!%9aQg+TU+o_O9MnAf0w>h9wvL2Bcw z>Bc+LLlCvc;)O$Ym{1D_=yZ;=dkGg0Ri?-LkMqz{%FBp|`)&8*26MpUf)>$2f{2Jn zMiQ8iolP2O9O(Wz6jy|rx+zqrU)GMdM9Z3;oW>;i!Oz_0tddkz7O%;rz|MZ5qV1;9 z;yAe8*Bn+9F%%=82bN3OLQGO)UKj~?O&Y#s&EuPpycSoKa_2_IO@bXgaeaxJ;+T|O zwCeocxx-~xm;^RwEAb~^SG$Wz%Lqvg(@AGHO7a~12b#DlmlymN5+F&oV+y?Q&o$A=#`23kc!Yq|#p;v$XY=nwk%jW>(YDizhZbq z8s4p-+3pr<fF*+sVrHBvn1f_jYb14cZudGt}I^=ELF(ss*z zmOZV+FTsZj!c?t7rQxXfMqwV0tT~Q{M)fr!9@V+V6Lni6p#gS|RwjRzvOtr+#DknO|7d$UVa;Pvrp7xUe3G9v?morHL0cwh*o6Z*&14%eba zz%;RVXMos{xT%U^D>^m#qaoyVOTeoz3|A&IJna^>E(DP-6wY{AsErgecN7)GE)A7z zY2l!&v}wC${W|c~GaMB`ad9f<;e`u_t&iK$Y9gqRlubdi*;Ag<6X~pD;h+s zY93d%)Le`yk)T3BOc8#JaJr1)b`nLu=}^MMSTXIo5DMSfBcGt0$`o2rdIsfB%@xPk zF=+UDN0S{Su}eK~f6*ZTQIBl1W6+bPelq=pdNAJ4Pv%k8$4GF52bHi#ujsstQ~Gxn z082V@>MY>Cv;p=g|K7p==Zjht0af65qPfxZzrvX;x7iE^fV!AyU@KdE6FBkFZc|J~ zFjWfZ;v(7FnU(sz6j7O6U3w?~2<#)XULmAejOa3B!eNuYZxjIp^Skjnp5v7I@ndSJ zpUuZIK0QSZ#l~oHVPPm)?c)&~;-X6wWZHpquyiw<<{MRunZ#k^*m(9_w3`@sROLJi z`A+LX7?aNe@jn-F4*RyU$-6{rv%pgtszp9_j7&>dPJnDwsfXo9whMkMEja3jlXRHC zcLhTvVlKTylx9Hw2k~tlN znu4W*a%wZnAP-7CtzUs3y1lS7ucu~yc7YXe!^v)*TCLu`gIu`8Iea#4j3k| z2HlmTcv&ocF=&1uTJvpbfu_KjTB`mGI271WG&l=s#s^aAMp z=O+MDkFbHgc1b`hd>6@VPw|-KeipHps_a-)_-ws~mVHotA2DJ+IU(J5Qg^CzL@x;~ z_oM+DyCyN!lB>=_XlmJrQ`DoNU}~TV{b+Zb2qUvl`5VV!Lfp{G4St&f2DbRRSVF-@ z(1_7w=-{QsDv_&nHNN*L({~yBM zI;!e6-5)kkKm?>k5TqNFZj@%z-5}lFEz&J5ut}x68kDKyLRaXRDr9~f+ zdi(lft3670+7c>Fvn|&85d7&)M%u@R3JusX#GmC-h$V;fKR?-e@q+l#h&TcdoM^zY z)?#5oD=*YHnn3i?Lc>D$yxYmm!quY34i}RE=>N%32=#2+Uzd z07ghw{n$#->ukZK0}f(jdD>M@ZgaZ6od=I=io;-xVpILX1H*fLqm&X zHX6Xkjc9#Cr_~UsRD7EPY}$&N2?6!z1Dv~uN6=~y?N`hAJ=lw$ZNqC#~ejnKHA49DB3K(;}b(F6f=6KtF~h-H5=B@wY?)Q^R} z##~$f?=qTLx4pA!YfQO%;!r`Yax9y@VCITG zEfL!BVY`W8P=%JmHZFdBlNDToXhoPUwg~%A4vJ3<`bwngKM-uRa zgsdfp$8p*1P^P=PIKM=WHlt*ywN`1l1;PL|xezd=i3p`!TUwg#5aL%fAr4=f>D}R` zVwCi&?8zYS5m^7)!_%tM%pS=Z(6{_n^$G4#|3E{!@7pz@Z`{J$71mTEkK3(jJ>$R9 zP~t|}JOxzmVtO5O-Y3Cb33+9F{nKmM?>!a=0K&1{X0Pe-_iEWbHc6+SkTgruZcZ_>vp$LX@Q%U%(} z*PJgua|F`rPGRlYTSsIR~c?n4j9Kl`JBWeW@8KALJE}rjS;8)I)1) zT|$A1imE#p2fWFsBVrEo_8bzJC^s1ppRl?fgArT9c=17J7#@XgXGa*`)=~grR=KpG`-Ps0 z(=7;JBU$+qqGESpQqEz0)0oOydSLboEXSZ|6SpddSVqL$@1CW_xD-)?qK=uTtqy&o ziYYJp**gUTA=`5`#qcbfMdC62=>;nIRNN;O!Jje z>^d~Mx!Spo-T`+~rOpl|>T7v*?MA9r(#mzJ?3hZBCavjVxnZPV`?qDaP3>(hw^}j! z*VsN%77F{BWqZY}<4AO2u5~ond-f-yP?%g$+HylY)Ga`W5hbAGQC|vKc5KN@hNUqz zZbjv0ZtNOZ0Pd*rp9XlLFBUx#O}FDG$fh2>W9;Ffg@}nY29(EoQ1dmf+b_3u>!OZT zn&F7$@jC4p`JL(%M=EP2q&4u)54m~wC7mTW2Uv>?6d%l(6_4U*)5>sQl^L)1MHp~P zOG~5iu~P(vh0!&hOeDEL;KB@s7c(@x7t$ry|Hymmy=z`MtR@zUrNhNl&rMXlH$K7+Czo%uJ**uf zoe#yX_IsMLAmN7sT4=;%4JRRVt%Wd_gs-`?uUPA#I1Q@W8Y?miPu3C_>u6(NChLPZpySOC23t^>_(690@{JDH0G%J?ly^* zcC5HnvF44F6C2gafwDQR!pp>J*s-;39(|IbnpaV?^%C*P?sPQ!cPzXRj6?&Yja9_6 z_KXliaDT*=sQMor2q#sc6l&gnBM-H{IN7m*Jv!T&j0XZbVN1(OLCWq0_{ldi*pC`y z`*aqlTcY$BDUF9szNMG2H+L>*C)eiVjY9FcNw!YUs%oA;`$fx85Z;IhVbZplG$_#2 zv0JA^3*dW#8$i|DP0f+|xnl)3!pLCWw>)O^vap5U1Q*Yz8PAVLTF;~BTR}yr%8$Cq zePx$fhQIP?eF≠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≪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 literal 0 HcmV?d00001 diff --git a/SBNYoung/Images/vscode3.png b/SBNYoung/Images/vscode3.png new file mode 100644 index 0000000000000000000000000000000000000000..a3ce471d9335cf837442231e4efba3ecba4115df GIT binary patch literal 134054 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%0Aa_2|d^Z*Dlm<_336LqXhS2TF-__8%}` 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

$;Ti@ptb^C?OuR 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�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 literal 0 HcmV?d00001 diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index dc6ee0e0d..63db38ee9 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -55,7 +55,322 @@ physics.producers.generator.SigmaThetaYZ: [0] # physics.producers.generator.AngleDist: 0 #0:Uniform 1:Gaussian ``` (More information on all the settable parameters can be found [here](https://cdcvs.fnal.gov/redmine/projects/larsoft/wiki/EventGenerator#SingleGen.)) -

To get started using this particle gun, save the file and call +

To get started using this particle gun, copy the above lines into `muon_gun.fcl`, save the file, and run the following lines in the command line. +```bash +lar -c muon_gun.fcl -n 10 #Generates 10 particles +lar -c standard_g4_sbnd.fcl -s prodsingle_sbnd_SinglesGen-*.root #Runs GEANT4 +lar -c standard_detsim_sbnd.fcl -s prodsingle_sbnd_SinglesGen-*_G4-*.root #Runs detector simulation +``` +The output file is an `ART` file containing `LArSoft` data products. We can see exactly what data products are in this file by executing +```bash +lar -c eventdump.fcl prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root -n 1 +``` +We will be looking primarily at `MCParticle` data products for this tutorial, and we can check that our `DetSim` file has them by executing +```bash +lar -c eventdump.fcl prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root -n 1 | grep MCParticle +``` +where the output shows a `vector` with the [simb::MCParticle](https://nusoft.fnal.gov/larsoft/doxsvn/html/classsimb_1_1MCParticle.html) class. We will be using this class to get the `G4` level information about our muons. First, however, we want to see what our detector sees using the [TITUS Event Display](https://sbnsoftware.github.io/sbndcode_wiki/TITUS_Event_Display.html) + +3 - TITUS Event Display +----------------------------------------------------------------------------- + +To view our event in `TITUS`, we should first setup the display by opening a fresh terminal, logging into a `gpvm` machine, and executing `source /sbnd/app/users/mdeltutt/static_evd/setup.sh`. To open the event display for our muon gun, run `evd.py -s /sbnd/app/users/$USER/tutorial/data/prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root`. When it opens, select `Raw Digit` on the right pane, wait a few seconds, and VOILÀ! You are now seeing what SBND sees when a muon passes through the detector! Clicking `next` in the top left pane allows you to see all the other muon events and they should all look the same! + +4 - Analyzer Module +----------------------------------------------------------------------------- +The [SBND Commissioning Page - Get Started Guide](https://sbnsoftware.github.io/sbndcode_wiki/commissioning/SBND_Commissioning_Get_Started.html) covers the `hitdumper module`, which stores most relevant [detector information](https://github.com/SBNSoftware/sbndcode/blob/develop/sbndcode/Commissioning/HitDumper_module.cc#L152) such as hit and crt readouts. Our focus will be the truth level information, and how to write a simple analyzer module. First, make sure you have setup the `LArSoft` code space, then execute the following + +```bash +cd $MRB_SOURCE/sbndcode/sbndcode +mkdir PGUNtutorial +cd PGUNtutorial +cetskelgen analyzer MyAnalyzer +``` +`cetskelgen` produces a skeleton of a module with the class name being `MyAnalyzer`. The `analyzer` after `cetskelgen` specifies the type of `art` module being used, namely an `analyzer module`. There are also `producer` and `filter` modules which won't be covered here, but you can familiarize yourself with them [here](https://indico.fnal.gov/event/20453/contributions/57771/attachments/36174/44057/larsofttutorial1.pdf). Before we get too far ahead, we need to add the sub directory to the `CMakeLists.txt` so that our module will be compiled. To do this execute +```bash +echo 'add_subdirectory(PGUNtutorial)' >> ../CMakeLists.txt +``` +and it will add this line to the end of the `CMakeLists.txt` file. We also need a `CMakeLists.txt` file in our current directory, so go ahead and make this file and copy the following lines into it
+```bash +art_make( + MODULE_LIBRARIES larcorealg_Geometry + larcore_Geometry_Geometry_service + larsim_Simulation lardataobj_Simulation + larsim_MCCheater_BackTrackerService_service + larsim_MCCheater_ParticleInventoryService_service + lardata_Utilities + larevt_Filters + lardataobj_RawData + lardataobj_RecoBase + larreco_RecoAlg + lardata_RecoObjects + larpandora_LArPandoraInterface + nusimdata_SimulationBase + ${ART_FRAMEWORK_CORE} + ${ART_FRAMEWORK_PRINCIPAL} + ${ART_FRAMEWORK_SERVICES_REGISTRY} + ${ART_ROOT_IO_TFILE_SUPPORT} ${ROOT_CORE} + ${ART_ROOT_IO_TFILESERVICE_SERVICE} + art_Persistency_Common canvas + art_Persistency_Provenance canvas + art_Utilities canvas + ${MF_MESSAGELOGGER} + ${FHICLCPP} + ${ROOT_GEOM} + ${ROOT_XMLIO} + ${ROOT_GDML} + ${ROOT_BASIC_LIB_LIST} + sbndcode_RecoUtils + ) + install_fhicl() + install_source() +``` +You should now have two files, `MyAnalyzer_module.cc` and `CMakeLists.txt` in the folder `$MRB_SOURCE/sbndcode/sbndcode/PGUNtutorial`. For reference your module should look something like this in `VSCode`: +![Module](Images/vscode1.png) +We will now step through the analyzer module to build a module that can read truth level information and output a `TTree` root file. For help on making any analyzer module, you can refer to the ultimate analyzer module, the [Analysis Tree](https://github.com/SBNSoftware/sbndcode/tree/develop/sbndcode/AnalysisTree) (which I will be referencing myself to make this module). In the following sections, I'll be adding headers, functions, and pointers to data products. + +4.1 - MyAnalyzer Module +----------------------------------------------------------------------------- +We are only going to be looking at the `MCParticle` class, so we'll need to add the following headers to the top of `MyAnalyzer_module.cc`: +```c++ +//Include these for MCParticle +#include "nusimdata/SimulationBase/MCTruth.h" +//Include these for TTree building +#include "art_root_io/TFileService.h" +#include "art_root_io/TFileDirectory.h" +#include "TTree.h" +``` +After the required functions sections, we'll add two functions: +```c++ +//My functions + void beginJob(); + void reset(); +``` +The `beginJob()` function initializes the variables and `TTree`, `void analyze(art::Event const& e) override` pushes data to each `TBranch`, and `void reset()` resets the variables after they've been written for a single event. Under `private:`, we'll initialize our variables and module labels. + +```c++ + //Simulation information + TTree* fEventTree; + Int_t run; + Int_t subrun; + Int_t event; + + //Geant info + Int_t no_primaries; + std::vector pdg; + std::vector status; + std::vector Eng; + std::vector EndE; + std::vector Mass; + std::vector Px; + std::vector Py; + std::vector Pz; + std::vector P; + std::vector StartPointx; + std::vector StartPointy; + std::vector StartPointz; + std::vector StartT; + std::vector EndT; + std::vector EndPointx; + std::vector EndPointy; + std::vector EndPointz; + std::vector theta_xz; + std::vector theta_yz; + std::vector NumberDaughters; + std::vector TrackId; + std::vector Mother; + + //Module labels + std::string fMCShowerModuleLabel; + std::string fMCTrackModuleLabel; +``` +For now, we'll ignore `MyAnalyzer::MyAnalyzer(fhicl::ParameterSet const& p)`, which passes `.fcl` parameters into the module. Add the `beginJob()` function under the `fhicl` parameter set function. + +```c++ +void MyAnalyzer::beginJob(){ + // Implementation of required member function here. + std::cout<<"job begin..."< tfs; + + //Make TTree + fEventTree = tfs->make("Event", "Neutrino interaction info."); + + //Simulation branches + fEventTree->Branch("event", &event,"event/I"); + fEventTree->Branch("run", &run,"run/I"); + fEventTree->Branch("subrun", &subrun,"subrun/I"); + + //Geant info + fEventTree->Branch("pdg",&pdg); + fEventTree->Branch("status",&status); + fEventTree->Branch("Eng",&Eng); + fEventTree->Branch("EndE",&EndE); + fEventTree->Branch("Mass",&Mass); + fEventTree->Branch("Px",&Px); + fEventTree->Branch("Py",&Py); + fEventTree->Branch("Pz",&Pz); + fEventTree->Branch("P",&P); + fEventTree->Branch("StartPointx",&StartPointx); + fEventTree->Branch("StartPointy",&StartPointy); + fEventTree->Branch("StartPointz",&StartPointz); + fEventTree->Branch("StartT",&StartT); + fEventTree->Branch("EndT",&EndT); + fEventTree->Branch("EndPointx",&EndPointx); + fEventTree->Branch("EndPointy",&EndPointy); + fEventTree->Branch("EndPointz",&EndPointz); + fEventTree->Branch("theta_xz",&theta_xz); + fEventTree->Branch("theta_yz",&theta_yz); + fEventTree->Branch("NumberDaughters",&NumberDaughters); + fEventTree->Branch("TrackId",&TrackId); + fEventTree->Branch("Mother",&Mother); +} +``` +We should now populate our `analyze` function, this will be the main piece that pushes the necessary data to the correct branches. +```c++ +void MyAnalyzer::analyze(art::Event const& e) +{ + reset(); //Initialize parameters + + //Gets particle information + art::ServiceHandle pi_serv; + + //Geant info + const sim::ParticleList& plist = pi_serv->ParticleList(); + sim::ParticleList::const_iterator itPart = plist.begin(), pend = plist.end(); // iterator to pairs (track id, particle) + for(size_t iPart = 0; (iPart < plist.size()) && (itPart != pend); ++iPart){ + const simb::MCParticle* pPart = (itPart++)->second; + if (!pPart) { + throw art::Exception(art::errors::LogicError) + << "GEANT particle #" << iPart << " returned a null pointer"; + }//endif pPart + //Geant info + Mother.push_back(pPart->Mother()); + TrackId.push_back(pPart->TrackId()); + pdg.push_back(pPart->PdgCode()); + status.push_back( pPart->StatusCode()); + Eng.push_back(pPart->E()); + EndE.push_back(pPart->EndE()); + Mass.push_back(pPart->Mass()); + Px.push_back(pPart->Px()); + Py.push_back(pPart->Py()); + Pz.push_back(pPart->Pz()); + P.push_back(pPart->Momentum().Vect().Mag()); + StartPointx.push_back(pPart->Vx()); + StartPointy.push_back(pPart->Vy()); + StartPointz.push_back(pPart->Vz()); + StartT.push_back(pPart->T()); + EndPointx.push_back(pPart->EndPosition()[0]); + EndPointy.push_back(pPart->EndPosition()[1]); + EndPointz.push_back(pPart->EndPosition()[2]); + EndT.push_back(pPart->EndT()); + theta_xz.push_back( std::atan2(pPart->Px(), pPart->Pz())); + theta_yz.push_back( std::atan2(pPart->Py(), pPart->Pz())); + NumberDaughters.push_back(pPart->NumberDaughters()); + }//endfor iPart + fEventTree->Fill(); +}//end analyze +``` +Finally, we'll complete our module by building the `reset` function, which clears all of the vectors. +``` +c++ +void MyAnalyzer::reset(){ + //Geant info + pdg.clear(); + status.clear(); + Eng.clear(); + EndE.clear(); + Mass.clear(); + Px.clear(); + Py.clear(); + Pz.clear(); + P.clear(); + StartPointx.clear(); + StartPointy.clear(); + StartPointz.clear(); + StartT.clear() ; + EndT.clear() ; + EndPointx.clear(); + EndPointy.clear(); + EndPointz.clear(); + theta_xz.clear() ; + theta_yz.clear() ; + NumberDaughters.clear(); + TrackId.clear(); + Mother.clear(); +}//end reset +``` +4.2 - MyAnalyzer FHiCL +----------------------------------------------------------------------------- +Great! Now you have an analyzer module capable of creating a `TTree` for analysis. Let's make the `.fcl` file that will allow us to run the module on an `art` root file. Create and empty file and name it `MyAnalyzer.fcl`. First we'll need to attach the service `.fcl` files, necessary to reference the data products. Add the following lines at the top of `MyAnalyzer.fcl` + +```bash +#include "simulationservices_sbnd.fcl" +#include "particleinventoryservice.fcl" +#include "backtrackerservice.fcl" +#include "rootoutput_sbnd.fcl" + +process_name: MyAnalyzer + +services: +{ + #Load the service that manages root files for histograms. + TFileService: { fileName: "MyAnalyzer.root" } + RandomNumberGenerator: {} #ART native random number generator + @table::sbnd_services + FileCatalogMetadata: @local::sbnd_file_catalog_mc + ParticleInventoryService: @local::standard_particleinventoryservice +} +``` +The last thing we need is our custom physics list. We only have a single analyzer, so we can simply specify the analyzer module name and be done with writing our `.fcl` file. +```bash +physics: +{ + producers:{} + filters: {} + analyzers:{ + MyAnalyzer:{module_type: "MyAnalyzer"} + } + + #define the producer and filter modules for this path, order matters, + #filters reject all following items. see lines starting physics.producers below + ana: [ MyAnalyzer] + + #define the output stream, there could be more than one if using filters + #stream1: [ out1 ] + + #trigger_paths is a keyword and contains the paths that modify the art::event, + #ie filters and producers + #trigger_paths: [reco] + + #end_paths is a keyword and contains the paths that do not modify the art::Event, + #ie analyzers and output streams. these all run simultaneously + end_paths: [ ana ] +} +``` +Now you have a working analyzer module, and a `.fcl` file to go along with it! We just have a few more steps before we can start looking at our simulation data. To learn more about `.fcl` files, consider referring to [The ART Workbook](https://art.fnal.gov/wp-content/uploads/2016/03/art-workbook-v0_91.pdf) section 24. + +4.3 - Running MyAnalyzer +----------------------------------------------------------------------------- +Now we should take a moment to check that we have everything before compiling our code. Give a quick `ls` command and your output should be three files: `CMakeLists.txt`, `MyAnalyzer.fcl` and `MyAnalyzer_module.cc`. If you have these three, you're good to go. Open a fresh terminal and run `ssh $USER@sbndbuild02.fnal.gov` to log into the build machine. Setup your working area (same as `gpvm`) and execute the following: +```bash +cd $MRB_BUILDDIR +mrb i -j64 +``` +If the stage install is not a success, check that your `CMakeLists.txt` are properly filled in, and that you have all of the correct header files for both the module and `.fcl` file. For reference, the complete tutorial for building the analyzer module lives at `/sbnd/app/users/brindenc/sbndcode_v09_43_00/srcs/sbndcode/sbndcode/PGUNtutorial/`. If the build is successful, head over to the tutorial space you made earlier and run the analyzer module: +```bash +cd /sbnd/app/users/$USER/tutorial/data +lar -c $MRB_SOURCE/sbndcode/sbndcode/PGUNtutorial/MyAnalyzer.fcl -s prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root +``` +You should now have `MyAnalyzer.root` in your `data` directory. Nice work! Now, click on `MyAnalyzer.root` by opening your current folder in the explorer pane and selecting the file. It should look something like this when you select the `Eng` `TBranch` +![VSCode2](Images/vscode2.png) +![VSCode3](Images/vscode3.png) + + + + + + + ![Alt text](Images/coords.png) From 5cf6ce2887b6f66d25c125030112637a378fa92b Mon Sep 17 00:00:00 2001 From: bear-is-asleep <67704640+bear-is-asleep@users.noreply.github.com> Date: Tue, 3 May 2022 20:23:04 -0500 Subject: [PATCH 0126/1437] Check formatting --- SBNYoung/particle_gun_tut.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 63db38ee9..8da7880a0 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -271,8 +271,7 @@ void MyAnalyzer::analyze(art::Event const& e) }//end analyze ``` Finally, we'll complete our module by building the `reset` function, which clears all of the vectors. -``` -c++ +```c++ void MyAnalyzer::reset(){ //Geant info pdg.clear(); @@ -364,6 +363,8 @@ lar -c $MRB_SOURCE/sbndcode/sbndcode/PGUNtutorial/MyAnalyzer.fcl -s prodsingle_s You should now have `MyAnalyzer.root` in your `data` directory. Nice work! Now, click on `MyAnalyzer.root` by opening your current folder in the explorer pane and selecting the file. It should look something like this when you select the `Eng` `TBranch` ![VSCode2](Images/vscode2.png) ![VSCode3](Images/vscode3.png) +5 - Running MyAnalyzer +----------------------------------------------------------------------------- From 052e824994b69ab1aa6c8e769d8c711522238e92 Mon Sep 17 00:00:00 2001 From: Patrick Green <44267542+pgreen135@users.noreply.github.com> Date: Wed, 4 May 2022 10:44:55 +0100 Subject: [PATCH 0127/1437] Update Tagging_a_release.md --- sbndcode_wiki/Tagging_a_release.md | 41 ++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/sbndcode_wiki/Tagging_a_release.md b/sbndcode_wiki/Tagging_a_release.md index eaa8462cc..4c1689e7d 100644 --- a/sbndcode_wiki/Tagging_a_release.md +++ b/sbndcode_wiki/Tagging_a_release.md @@ -103,6 +103,47 @@ Instructions git push --tags +Production releases and patches +--------------------------------------------------------------------- + +- When doing the intitial production release, the same steps as above are followed. + However, we want to preseve the release branch to allow future patches. To do this: + + git flow release finish -k + +- The branch can then be renamed as desired, e.g. to release/SBN2021B. Branch protection + rules should also be applied to prevent unintentional changes by users. This is set up + to automatically be applied to any branches named: release/SBN* + +- This branch is then used for creating a new release. I do this manually rather than using git flow: + + 1). Checkout release branch from git, either: + + mrb g sbndcode@release/SBN2021B + + or if already checked out develop, + + git fetch origin release/SBN2021B + git switch release/SBN2021B + + 2). Merge any updates. Note that PRs can be directed to merge into this branch instead of develop. + + 3). Bump version numbers and push updated branch for use on Jenkins as normal. + + 4). Create a new tag manually while on the release branch: + + git tag -a v09_28_01_01 -m "Version v09_28_01_01, patch release for SBN-2021B" + git push --tags + +- If backporting changes to a patch of the production branch, cherry-picking of commits may be required. + For example, to merge a single commit from develop into the prodCAFfix branch: + + mrb g sbnanaobj@v09_17_06_01 + git checkout -b feature/miquelnebot_prodCAFfix + git cherry-pick dedb4687017d111bb938f09ec5fbec7bdd7a3516 + git push origin feature/miquelnebot_prodCAFfix + + This branch could then be merged to the release branch via a PR. Details: start_release.sh --------------------------------------------------------------------- From 5b471a6b0f7a7c6079046b9cb535b9a3c5b5c06c Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 4 May 2022 11:39:09 -0700 Subject: [PATCH 0128/1437] Fixed a geometry configuration link --- icaruscode_wiki/Detector_geometry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index ba2070d07..a93e85774 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -94,7 +94,7 @@ the relevant services: the recommended way is: } The configuration file -[`icarusalg/Geometry/icarus_geometry.fcl`](https://github.com/SBNSoftware/icarusalg/blob/develop/icarusalg/Geometry/icarus_geometry.fcl) +[`icarusalg/Geometry/geometry_icarus.fcl`](https://github.com/SBNSoftware/icarusalg/blob/develop/icarusalg/Geometry/geometry_icarus.fcl) defines and describes other options (look at the documentation at top of the file). If a specific geometry is needed in a job configuration that has already From 4c3919813c7b4ead4c76f04c897db84e3ba311d9 Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Wed, 4 May 2022 13:44:03 -0500 Subject: [PATCH 0129/1437] Update particle_gun_tut.md --- SBNYoung/particle_gun_tut.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 8da7880a0..7aea72d6b 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -7,7 +7,9 @@ toc: true toc_title: SBND Code - Get Started Guide --- # Viewing charged particles in SBND using a particle gun generator and analyzer module + (Requires some knowledge of reconstruction chains, `c++`, `python` and a recent version of `sbndcode`. I ran on v09\_43_00)

If you still need to setup your `sbndcode` area, follow steps 1-3 on the [SBND Commissioning Page - Get Started Guide](https://sbnsoftware.github.io/sbndcode_wiki/commissioning/SBND_Commissioning_Get_Started.html) + 1 - Visual Studio Code ---------------------- Although there are many text editor options, I'd recommend [Visual Studio Code](https://code.visualstudio.com/) for many reasons:

From 95486a5cac2175dc6ed2a087dc3b5b98c9e70e6b Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Wed, 4 May 2022 13:44:33 -0500 Subject: [PATCH 0130/1437] Update particle_gun_tut.md --- SBNYoung/particle_gun_tut.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 7aea72d6b..da7ca6d4c 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -357,12 +357,15 @@ Now we should take a moment to check that we have everything before compiling ou cd $MRB_BUILDDIR mrb i -j64 ``` + If the stage install is not a success, check that your `CMakeLists.txt` are properly filled in, and that you have all of the correct header files for both the module and `.fcl` file. For reference, the complete tutorial for building the analyzer module lives at `/sbnd/app/users/brindenc/sbndcode_v09_43_00/srcs/sbndcode/sbndcode/PGUNtutorial/`. If the build is successful, head over to the tutorial space you made earlier and run the analyzer module: ```bash cd /sbnd/app/users/$USER/tutorial/data lar -c $MRB_SOURCE/sbndcode/sbndcode/PGUNtutorial/MyAnalyzer.fcl -s prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root ``` + You should now have `MyAnalyzer.root` in your `data` directory. Nice work! Now, click on `MyAnalyzer.root` by opening your current folder in the explorer pane and selecting the file. It should look something like this when you select the `Eng` `TBranch` + ![VSCode2](Images/vscode2.png) ![VSCode3](Images/vscode3.png) 5 - Running MyAnalyzer From ea1a3373fb072337ceb3448d84652a9561311889 Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Wed, 4 May 2022 14:04:12 -0500 Subject: [PATCH 0131/1437] Create particle_gun_tut.md --- SBNYoung/particle_gun_tut.md | 43 ++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index da7ca6d4c..374febe6e 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -7,18 +7,16 @@ toc: true toc_title: SBND Code - Get Started Guide --- # Viewing charged particles in SBND using a particle gun generator and analyzer module - -(Requires some knowledge of reconstruction chains, `c++`, `python` and a recent version of `sbndcode`. I ran on v09\_43_00)

If you still need to setup your `sbndcode` area, follow steps 1-3 on the [SBND Commissioning Page - Get Started Guide](https://sbnsoftware.github.io/sbndcode_wiki/commissioning/SBND_Commissioning_Get_Started.html) - +(Requires some knowledge of reconstruction chains, `c++`, `python` and a recent version of `sbndcode`. I ran on `v09\_43_00`)

If you still need to setup your `sbndcode` area, follow steps 1-3 on the [SBND Commissioning Page - Get Started Guide](https://sbnsoftware.github.io/sbndcode_wiki/commissioning/SBND_Commissioning_Get_Started.html) 1 - Visual Studio Code ---------------------- Although there are many text editor options, I'd recommend [Visual Studio Code](https://code.visualstudio.com/) for many reasons:

1. It has syntax highlighting for almost every language including `Fermilab Hierarchical Configuration Language` or `.fcl` files.
-2. You can view `.root` files using the `Explorer` page.
-3. It supports `ssh` connections with `X11 forwarding`.
+2. You can view `.root` files using the Explorer page.
+3. It supports ssh connections with X11 forwarding.
4. There are many keyboard shortcuts such as multiline commenting and search and replace.
-To get started, let's first [add an ssh host on VSCode](https://code.visualstudio.com/docs/remote/ssh). Whichever `gpvm` machine you use should be fine. Next, we should [add extensions](https://code.visualstudio.com/docs/editor/extension-marketplace). For this tutorial, you'll need the following extensions:

+To get started, let's first [add an ssh host on VSCode](https://code.visualstudio.com/docs/remote/ssh). Whichever gpvm machine you use should be fine. Next, we should [add extensions](https://code.visualstudio.com/docs/editor/extension-marketplace). For this tutorial, you'll need the following extensions:

-[Fermilab Hierarchical Configuration Language support](https://marketplace.visualstudio.com/items?itemName=robertosoleti.fcl)
-[Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) and if you use [Jupyter Notebooks](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter)
-[C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
@@ -63,11 +61,11 @@ lar -c muon_gun.fcl -n 10 #Generates 10 particles lar -c standard_g4_sbnd.fcl -s prodsingle_sbnd_SinglesGen-*.root #Runs GEANT4 lar -c standard_detsim_sbnd.fcl -s prodsingle_sbnd_SinglesGen-*_G4-*.root #Runs detector simulation ``` -The output file is an `ART` file containing `LArSoft` data products. We can see exactly what data products are in this file by executing +The output file is an ART file containing LArSoft data products. We can see exactly what data products are in this file by executing ```bash lar -c eventdump.fcl prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root -n 1 ``` -We will be looking primarily at `MCParticle` data products for this tutorial, and we can check that our `DetSim` file has them by executing +We will be looking primarily at MCParticle data products for this tutorial, and we can check that our DetSim file has them by executing ```bash lar -c eventdump.fcl prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root -n 1 | grep MCParticle ``` @@ -76,11 +74,11 @@ where the output shows a `vector` with the [simb::MCParticle](https://nusoft.fna 3 - TITUS Event Display ----------------------------------------------------------------------------- -To view our event in `TITUS`, we should first setup the display by opening a fresh terminal, logging into a `gpvm` machine, and executing `source /sbnd/app/users/mdeltutt/static_evd/setup.sh`. To open the event display for our muon gun, run `evd.py -s /sbnd/app/users/$USER/tutorial/data/prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root`. When it opens, select `Raw Digit` on the right pane, wait a few seconds, and VOILÀ! You are now seeing what SBND sees when a muon passes through the detector! Clicking `next` in the top left pane allows you to see all the other muon events and they should all look the same! +To view our event in **TITUS**, we should first setup the display by opening a fresh terminal, logging into a gpvm machine, and executing `source /sbnd/app/users/mdeltutt/static_evd/setup.sh`. To open the event display for our muon gun, run `evd.py -s /sbnd/app/users/$USER/tutorial/data/prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root`. When it opens, select Raw Digit on the right pane, wait a few seconds, and VOILÀ! You are now seeing what SBND sees when a muon passes through the detector! Clicking next in the top left pane allows you to see all the other muon events and they should all look the same! 4 - Analyzer Module ----------------------------------------------------------------------------- -The [SBND Commissioning Page - Get Started Guide](https://sbnsoftware.github.io/sbndcode_wiki/commissioning/SBND_Commissioning_Get_Started.html) covers the `hitdumper module`, which stores most relevant [detector information](https://github.com/SBNSoftware/sbndcode/blob/develop/sbndcode/Commissioning/HitDumper_module.cc#L152) such as hit and crt readouts. Our focus will be the truth level information, and how to write a simple analyzer module. First, make sure you have setup the `LArSoft` code space, then execute the following +The [SBND Commissioning Page - Get Started Guide](https://sbnsoftware.github.io/sbndcode_wiki/commissioning/SBND_Commissioning_Get_Started.html) covers the hitdumper module, which stores most relevant [detector information](https://github.com/SBNSoftware/sbndcode/blob/develop/sbndcode/Commissioning/HitDumper_module.cc#L152) such as hit and crt readouts. Our focus will be the truth level information, and how to write a simple analyzer module. First, make sure you have setup the LArSoft code space, then execute the following ```bash cd $MRB_SOURCE/sbndcode/sbndcode @@ -88,7 +86,7 @@ mkdir PGUNtutorial cd PGUNtutorial cetskelgen analyzer MyAnalyzer ``` -`cetskelgen` produces a skeleton of a module with the class name being `MyAnalyzer`. The `analyzer` after `cetskelgen` specifies the type of `art` module being used, namely an `analyzer module`. There are also `producer` and `filter` modules which won't be covered here, but you can familiarize yourself with them [here](https://indico.fnal.gov/event/20453/contributions/57771/attachments/36174/44057/larsofttutorial1.pdf). Before we get too far ahead, we need to add the sub directory to the `CMakeLists.txt` so that our module will be compiled. To do this execute +`cetskelgen` produces a skeleton of a module with the class name being MyAnalyzer. Specifying `analyzer` after `cetskelgen` determines the type of `art` module being used, namely an analyzer module. There are also producer and filter modules which won't be covered here, but you can familiarize yourself with them [here](https://indico.fnal.gov/event/20453/contributions/57771/attachments/36174/44057/larsofttutorial1.pdf). Before we get too far ahead, we need to add the sub directory to the `CMakeLists.txt` so that our module will be compiled. To do this execute ```bash echo 'add_subdirectory(PGUNtutorial)' >> ../CMakeLists.txt ``` @@ -127,13 +125,13 @@ art_make( install_fhicl() install_source() ``` -You should now have two files, `MyAnalyzer_module.cc` and `CMakeLists.txt` in the folder `$MRB_SOURCE/sbndcode/sbndcode/PGUNtutorial`. For reference your module should look something like this in `VSCode`: +You should now have two files, `MyAnalyzer_module.cc` and `CMakeLists.txt` in the folder `$MRB_SOURCE/sbndcode/sbndcode/PGUNtutorial`. For reference your module should look something like this in VSCode: ![Module](Images/vscode1.png) -We will now step through the analyzer module to build a module that can read truth level information and output a `TTree` root file. For help on making any analyzer module, you can refer to the ultimate analyzer module, the [Analysis Tree](https://github.com/SBNSoftware/sbndcode/tree/develop/sbndcode/AnalysisTree) (which I will be referencing myself to make this module). In the following sections, I'll be adding headers, functions, and pointers to data products. +We will now step through the analyzer module to build a module that can read truth level information and output a TTree root file. For help on making any analyzer module, you can refer to the ultimate analyzer module, the [Analysis Tree](https://github.com/SBNSoftware/sbndcode/tree/develop/sbndcode/AnalysisTree) (which I will be referencing myself to make this module). However, this tutorial will cover the basics so we won't need to invoke the power of the Analysis Tree yet. In the following sections, I'll be adding headers, functions, and pointers to data products. 4.1 - MyAnalyzer Module ----------------------------------------------------------------------------- -We are only going to be looking at the `MCParticle` class, so we'll need to add the following headers to the top of `MyAnalyzer_module.cc`: +We are only going to be looking at the MCParticle class, so we'll need to add the following headers to the top of `MyAnalyzer_module.cc`: ```c++ //Include these for MCParticle #include "nusimdata/SimulationBase/MCTruth.h" @@ -148,7 +146,7 @@ After the required functions sections, we'll add two functions: void beginJob(); void reset(); ``` -The `beginJob()` function initializes the variables and `TTree`, `void analyze(art::Event const& e) override` pushes data to each `TBranch`, and `void reset()` resets the variables after they've been written for a single event. Under `private:`, we'll initialize our variables and module labels. +The `beginJob()` function initializes the variables and TTree, `void analyze(art::Event const& e) override` pushes data to each TBranch, and `void reset()` resets the variables after they've been written for a single event. Under `private:`, we'll initialize our variables and module labels. ```c++ //Simulation information @@ -186,7 +184,7 @@ The `beginJob()` function initializes the variables and `TTree`, `void analyze(a std::string fMCShowerModuleLabel; std::string fMCTrackModuleLabel; ``` -For now, we'll ignore `MyAnalyzer::MyAnalyzer(fhicl::ParameterSet const& p)`, which passes `.fcl` parameters into the module. Add the `beginJob()` function under the `fhicl` parameter set function. +For now, we'll ignore `MyAnalyzer::MyAnalyzer(fhicl::ParameterSet const& p)`, which passes `.fcl` parameters into the module. Add the `beginJob()` function under the fhicl parameter set function. ```c++ void MyAnalyzer::beginJob(){ @@ -227,7 +225,7 @@ void MyAnalyzer::beginJob(){ fEventTree->Branch("Mother",&Mother); } ``` -We should now populate our `analyze` function, this will be the main piece that pushes the necessary data to the correct branches. +We should now populate our analyze function, this will be the main piece that pushes the necessary data to the correct branches. ```c++ void MyAnalyzer::analyze(art::Event const& e) { @@ -272,7 +270,7 @@ void MyAnalyzer::analyze(art::Event const& e) fEventTree->Fill(); }//end analyze ``` -Finally, we'll complete our module by building the `reset` function, which clears all of the vectors. +Finally, we'll complete our module by building the reset function, which clears all of the vectors. ```c++ void MyAnalyzer::reset(){ //Geant info @@ -302,7 +300,7 @@ void MyAnalyzer::reset(){ ``` 4.2 - MyAnalyzer FHiCL ----------------------------------------------------------------------------- -Great! Now you have an analyzer module capable of creating a `TTree` for analysis. Let's make the `.fcl` file that will allow us to run the module on an `art` root file. Create and empty file and name it `MyAnalyzer.fcl`. First we'll need to attach the service `.fcl` files, necessary to reference the data products. Add the following lines at the top of `MyAnalyzer.fcl` +Great! Now you have an analyzer module capable of creating a TTree for analysis. Let's make the `.fcl` file that will allow us to run the module on an art root file. Create and empty file and name it `MyAnalyzer.fcl`. First we'll need to attach the service `.fcl` files, necessary to reference the data products. Add the following lines at the top of `MyAnalyzer.fcl` ```bash #include "simulationservices_sbnd.fcl" @@ -352,20 +350,17 @@ Now you have a working analyzer module, and a `.fcl` file to go along with it! W 4.3 - Running MyAnalyzer ----------------------------------------------------------------------------- -Now we should take a moment to check that we have everything before compiling our code. Give a quick `ls` command and your output should be three files: `CMakeLists.txt`, `MyAnalyzer.fcl` and `MyAnalyzer_module.cc`. If you have these three, you're good to go. Open a fresh terminal and run `ssh $USER@sbndbuild02.fnal.gov` to log into the build machine. Setup your working area (same as `gpvm`) and execute the following: +Now we should take a moment to check that we have everything before compiling our code. Give a quick `ls` command and your output should be three files: `CMakeLists.txt`, `MyAnalyzer.fcl` and `MyAnalyzer_module.cc`. If you have these three, you're good to go. Open a fresh terminal and run `ssh $USER@sbndbuild02.fnal.gov` to log into the build machine. Setup your working area (same as gpvm) and execute the following: ```bash cd $MRB_BUILDDIR mrb i -j64 ``` - If the stage install is not a success, check that your `CMakeLists.txt` are properly filled in, and that you have all of the correct header files for both the module and `.fcl` file. For reference, the complete tutorial for building the analyzer module lives at `/sbnd/app/users/brindenc/sbndcode_v09_43_00/srcs/sbndcode/sbndcode/PGUNtutorial/`. If the build is successful, head over to the tutorial space you made earlier and run the analyzer module: ```bash cd /sbnd/app/users/$USER/tutorial/data lar -c $MRB_SOURCE/sbndcode/sbndcode/PGUNtutorial/MyAnalyzer.fcl -s prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root ``` - -You should now have `MyAnalyzer.root` in your `data` directory. Nice work! Now, click on `MyAnalyzer.root` by opening your current folder in the explorer pane and selecting the file. It should look something like this when you select the `Eng` `TBranch` - +You should now have `MyAnalyzer.root` in your `data` directory. Nice work! Now, click on `MyAnalyzer.root` by opening your current folder in the explorer pane and selecting the file. It should look something like this when you select the *Eng* TBranch ![VSCode2](Images/vscode2.png) ![VSCode3](Images/vscode3.png) 5 - Running MyAnalyzer From ed14250d220df880d5ce87ca0752eecd194fba0c Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Wed, 4 May 2022 14:04:37 -0500 Subject: [PATCH 0132/1437] Update particle_gun_tut.md --- SBNYoung/particle_gun_tut.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 374febe6e..4fb7a45f7 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -7,7 +7,9 @@ toc: true toc_title: SBND Code - Get Started Guide --- # Viewing charged particles in SBND using a particle gun generator and analyzer module + (Requires some knowledge of reconstruction chains, `c++`, `python` and a recent version of `sbndcode`. I ran on `v09\_43_00`)

If you still need to setup your `sbndcode` area, follow steps 1-3 on the [SBND Commissioning Page - Get Started Guide](https://sbnsoftware.github.io/sbndcode_wiki/commissioning/SBND_Commissioning_Get_Started.html) + 1 - Visual Studio Code ---------------------- Although there are many text editor options, I'd recommend [Visual Studio Code](https://code.visualstudio.com/) for many reasons:

From cd5d11ff0b9411672cfc3d36ebe3db91656537e3 Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Wed, 4 May 2022 14:06:17 -0500 Subject: [PATCH 0133/1437] Update particle_gun_tut.md --- SBNYoung/particle_gun_tut.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 4fb7a45f7..23adc8e39 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -71,7 +71,7 @@ We will be looking primarily at MCParticle data products for this tutorial, and ```bash lar -c eventdump.fcl prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root -n 1 | grep MCParticle ``` -where the output shows a `vector` with the [simb::MCParticle](https://nusoft.fnal.gov/larsoft/doxsvn/html/classsimb_1_1MCParticle.html) class. We will be using this class to get the `G4` level information about our muons. First, however, we want to see what our detector sees using the [TITUS Event Display](https://sbnsoftware.github.io/sbndcode_wiki/TITUS_Event_Display.html) +where the output shows a vector with the [simb::MCParticle](https://nusoft.fnal.gov/larsoft/doxsvn/html/classsimb_1_1MCParticle.html) class. We will be using this class to get the G4 level information about our muons. First, however, we want to see what our detector sees using the [TITUS Event Display](https://sbnsoftware.github.io/sbndcode_wiki/TITUS_Event_Display.html) 3 - TITUS Event Display ----------------------------------------------------------------------------- @@ -88,7 +88,7 @@ mkdir PGUNtutorial cd PGUNtutorial cetskelgen analyzer MyAnalyzer ``` -`cetskelgen` produces a skeleton of a module with the class name being MyAnalyzer. Specifying `analyzer` after `cetskelgen` determines the type of `art` module being used, namely an analyzer module. There are also producer and filter modules which won't be covered here, but you can familiarize yourself with them [here](https://indico.fnal.gov/event/20453/contributions/57771/attachments/36174/44057/larsofttutorial1.pdf). Before we get too far ahead, we need to add the sub directory to the `CMakeLists.txt` so that our module will be compiled. To do this execute +`cetskelgen` produces a skeleton of a module with the class name being MyAnalyzer. Specifying `analyzer` after `cetskelgen` determines the type of art module being used, namely an analyzer module. There are also producer and filter modules which won't be covered here, but you can familiarize yourself with them [here](https://indico.fnal.gov/event/20453/contributions/57771/attachments/36174/44057/larsofttutorial1.pdf). Before we get too far ahead, we need to add the sub directory to the `CMakeLists.txt` so that our module will be compiled. To do this execute ```bash echo 'add_subdirectory(PGUNtutorial)' >> ../CMakeLists.txt ``` @@ -362,9 +362,11 @@ If the stage install is not a success, check that your `CMakeLists.txt` are prop cd /sbnd/app/users/$USER/tutorial/data lar -c $MRB_SOURCE/sbndcode/sbndcode/PGUNtutorial/MyAnalyzer.fcl -s prodsingle_sbnd_SinglesGen-*_G4-*_DetSim-*.root ``` + You should now have `MyAnalyzer.root` in your `data` directory. Nice work! Now, click on `MyAnalyzer.root` by opening your current folder in the explorer pane and selecting the file. It should look something like this when you select the *Eng* TBranch ![VSCode2](Images/vscode2.png) ![VSCode3](Images/vscode3.png) + 5 - Running MyAnalyzer ----------------------------------------------------------------------------- From 66ecd6540596cb3e0e2d1a101b06772efc8371b4 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Thu, 5 May 2022 08:35:37 -0500 Subject: [PATCH 0134/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index 1fb008950..6d1872621 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -29,7 +29,7 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati ``` source /cvmfs/.opensciencegrid.org/products//setup_.sh ``` -4. `setup sbnci v09_46_02 -q e20:prof` +4. `setup sbnci v09_48_01 -q e20:prof` 5. `source get_proxy.sh` 6. To validate your code, you will need to provide the following. - Validation workflow (`tpcreco`, `tpcsim`, `pds`, or `crt`) From b8f327e3143204426ec6ee218cd3a1103d31006d Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Thu, 5 May 2022 09:16:59 -0500 Subject: [PATCH 0135/1437] Create CAENdump_setup.md --- sbn_online_wiki/CAENdump_setup.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 sbn_online_wiki/CAENdump_setup.md diff --git a/sbn_online_wiki/CAENdump_setup.md b/sbn_online_wiki/CAENdump_setup.md new file mode 100644 index 000000000..da88b2cd3 --- /dev/null +++ b/sbn_online_wiki/CAENdump_setup.md @@ -0,0 +1,22 @@ +--- +layout: page +title: SBN DAQ Software Setup Instructions +hero_height: is-small +--- + +Setup instructions to run `CAENdump` + +* TOC +{:toc} + +## Prerequisites + +You need to [setup sbndaq and sbndaq-artdaq](Installation.md), either as yourself or SBND. Then make a directory in a home area (NOT in the local git repository). + +## CAENdump + +You can look at `~mstancar/PMT_ana` on `sbnd-daq34` at DAB for an example. or `~sbnd/ana_crt` on `sbnd-gateway01` (but those are crt things, not 1730 things) +The analysis modules live here . . . . +[sbndaq_artdaq/sbndaq-artdaq/ArtModules/Common/](https://github.com/SBNSoftware/sbndaq-artdaq/tree/develop/sbndaq-artdaq/ArtModules/Common) +and there you will see scripts for running them +`dump_CAENV1730.fcl` and `dump_multi.fcl` From 0ea702f4caa8e4b77d44a8a581058386e74b708e Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Thu, 5 May 2022 09:18:36 -0500 Subject: [PATCH 0136/1437] Update sbndaq_Wiki.md --- sbn_online_wiki/sbndaq_Wiki.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 2c50b7a94..ad6cfd100 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -59,6 +59,7 @@ see the old wiki for a lot of historical detail. * artdaq: [Artdaq Demo Wiki](https://cdcvs.fnal.gov/redmine/projects/artdaq-demo/wiki) * git info: [Github guides](https://guides.github.com/) * [Older instructions on Github Migration](GithubMigration.md) +* [Run CAENdump](CAENdump_setup.md) sbndaq detector components ---------------------------------------------- From 39da43dd1eb9ae347d2ff05fc04071e095456412 Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Thu, 5 May 2022 09:22:48 -0500 Subject: [PATCH 0137/1437] Update CAENdump_setup.md --- sbn_online_wiki/CAENdump_setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/CAENdump_setup.md b/sbn_online_wiki/CAENdump_setup.md index da88b2cd3..1bcbf18b0 100644 --- a/sbn_online_wiki/CAENdump_setup.md +++ b/sbn_online_wiki/CAENdump_setup.md @@ -1,6 +1,6 @@ --- layout: page -title: SBN DAQ Software Setup Instructions +title: SBND CAENdump Setup hero_height: is-small --- From 15762ce7b69652c31639158d2b9abeed1d576106 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 5 May 2022 14:04:10 -0700 Subject: [PATCH 0138/1437] Fixed link to workfloa page --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 3a15e954d..e3d2223a7 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -18,7 +18,7 @@ A list of samples that were requested and produced since Oct 2020 and the status The spreadsheet contain the configuration files used, the code version, the statistics produced and the SAM dataset for access. Currently the production passes are organized in spreadsheet tabs. If necessary information can't be found, please email the production group at [sbn-mc-prod@fnal.gov](sbn-mc-prod@fnal.gov) -More information about the workflow can be found at the [SBN Analysis Infrastructure Workflow Management page](AnalysisInfrastructure/WorkflowManagement/workflow.md) +More information about the workflow can be found at the [SBN Analysis Infrastructure Workflow Management page](../../AnalysisInfrastructure/WorkflowManagement/workflow.md). Monte Carlo official SBN Production Samples From 9676432c7f61657ff11608dfe109623e839fb550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 6 May 2022 20:16:12 +0200 Subject: [PATCH 0139/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index c82c9e150..1530e7c21 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_50_00` | Weekly release | [Release Notes](ReleaseNotes095000.html) |`v09_49_00` | Weekly release | [Release Notes](ReleaseNotes094900.html) |`v09_48_01` | Weekly release | [Release Notes](ReleaseNotes094801.html) |`v09_37_02_04` | Patch release SBN-2022A | [Release Notes](ReleaseNotes09370204.html) From 93cfda56ad3c272dfc78ab35b89f02e7647f3b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 6 May 2022 20:35:19 +0200 Subject: [PATCH 0140/1437] Update 404.html --- 404.html | 100 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 77 insertions(+), 23 deletions(-) diff --git a/404.html b/404.html index c393e38c0..005f1aa2e 100644 --- a/404.html +++ b/404.html @@ -1,26 +1,80 @@ --- -permalink: /404.html -layout: default +layout: page +title: ReleaseNotes095000 +toc: true --- - - -

+----------------------------------------------------------------------------- +| v09.50.00 | 06 may 2022 | [ReleaseNotes](ReleaseNotes095000.html) | +| --- | --- | --- | + + + +sbndcode v09_50_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_50_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_50_00/sbndcode-v09_50_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR 280: + * Add a new cone shape feature for PFO Characterisation in PandoraNu. + * The changes include: + * Enable Cone Charge Feature Tools to run at PfoCharBDT1&2 + * Rename PfoCharBDT appropriately since now there are two trees at stage 1 and 2 + * Set 0.51 to match the cut value of each BDT. + * Neutrino Algorithms are moved from after to before the PfoCharBDT2. + * sbnd_data updated to v01_13_00 + +* sbndcode PR 282: + * add headers needed for larsoft v09_50_00 + * Also, larcorealg test headers will move: + * test/Geometry/geometry_unit_test_base.h becomes larcorealg/TestUtils/geometry_unit_test_base.h + * test/Geometry/GeometryTestAlg.h becomes larcorealg/test/Geometry/GeometryTestAlg.h + * test/Geometry/GeometryIteratorLoopTestAlg.h becomes larcorealg/test/Geometry/GeometryIteratorLoopTestAlg.h + * test/Geometry/GeometryIteratorTestAlg.h becomes larcorealg/test/Geometry/GeometryIteratorTestAlg.h + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_50_00 +* larsoft v09_50_00 +* sbnd_data v01_13_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-05-06 fran-nicar : Merge branch 'release/v09_50_00' +* 2022-05-06 fran-nicar : Update to larsoft version v09_50_00 +* 2022-05-06 Francisco Javier Nicolás-Arnaldos : Merge pull request #282 from lgarren/feature/lg_v09_50_00 +* 2022-05-06 Francisco Javier Nicolás-Arnaldos : Merge pull request #280 from SBNSoftware/feature/lnguyen_cone_shape_feature_bdt +* 2022-05-04 Lynn Garren : lardataobj_OpticalDetectorData is gone +* 2022-05-04 Lynn Garren : add headers needed for larsoft v09_50_00 +* 2022-05-04 Lynn Garren : larcorealg test headers have moved +* 2022-05-03 VCLanNguyen : Merge branch 'develop' into feature/lnguyen_cone_shape_feature_bdt +* 2022-05-03 Vu Chi Lan Nguyen : point sbndcode product_deps to the new sbnd_data v01_13_00 +* 2022-05-02 Vu Chi Lan Nguyen : Point to the new xml on sbnd_data v1_13_00 +* 2022-04-29 fran-nicar : Merge tag 'v09_49_00' into develop +* 2022-04-27 Vu Chi Lan Nguyen : fixed typo +* 2022-04-27 Vu Chi Lan Nguyen : enable ConeCharge feature for PfoCharBDT1&2, moved LAr Neutrino Hierarchy block to before PfoCharBDT2, change name of PfoCharBDT +* 2022-04-20 Vu Chi Lan Nguyen : enable Cone Charge Feature tool in Track Shower BDT1 +* 2022-04-20 Vu Chi Lan Nguyen : enable Cone Charge Feature tool in Track Shower BDT + +sbndutil +--------------------------------------------------- + +* 2022-05-06 fran-nicar : Merge tag 'v09_50_00' into develop +* 2022-05-06 fran-nicar : Merge branch 'release/v09_50_00' +* 2022-05-06 fran-nicar : Update to larsoft version v09_50_00 +* 2022-04-29 fran-nicar : Merge tag 'v09_49_00' into develop From a095e1811b77f20a02722799579a6d2efd2e3e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 6 May 2022 20:51:44 +0200 Subject: [PATCH 0141/1437] Manually revert previous commit --- 404.html | 104 +++++++++++++------------------------------------------ 1 file changed, 25 insertions(+), 79 deletions(-) diff --git a/404.html b/404.html index 005f1aa2e..33116dfda 100644 --- a/404.html +++ b/404.html @@ -1,80 +1,26 @@ --- -layout: page -title: ReleaseNotes095000 -toc: true ---- - ------------------------------------------------------------------------------ -| v09.50.00 | 06 may 2022 | [ReleaseNotes](ReleaseNotes095000.html) | -| --- | --- | --- | - - - -sbndcode v09_50_00 Release Notes -======================================================================================= - -[List of sbndcode releases](List_of_SBND_code_releases.html) - -Download instructions for [sbndcode v09_50_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_50_00/sbndcode-v09_50_00.html) - -Purpose ---------------------------------------------------- -Weekly release - -New features ---------------------------------------------------- -* sbndcode PR 280: - * Add a new cone shape feature for PFO Characterisation in PandoraNu. - * The changes include: - * Enable Cone Charge Feature Tools to run at PfoCharBDT1&2 - * Rename PfoCharBDT appropriately since now there are two trees at stage 1 and 2 - * Set 0.51 to match the cut value of each BDT. - * Neutrino Algorithms are moved from after to before the PfoCharBDT2. - * sbnd_data updated to v01_13_00 - -* sbndcode PR 282: - * add headers needed for larsoft v09_50_00 - * Also, larcorealg test headers will move: - * test/Geometry/geometry_unit_test_base.h becomes larcorealg/TestUtils/geometry_unit_test_base.h - * test/Geometry/GeometryTestAlg.h becomes larcorealg/test/Geometry/GeometryTestAlg.h - * test/Geometry/GeometryIteratorLoopTestAlg.h becomes larcorealg/test/Geometry/GeometryIteratorLoopTestAlg.h - * test/Geometry/GeometryIteratorTestAlg.h becomes larcorealg/test/Geometry/GeometryIteratorTestAlg.h - -Bug fixes ---------------------------------------------------- - -Updated dependencies ---------------------------------------------------- -* sbncode v09_50_00 -* larsoft v09_50_00 -* sbnd_data v01_13_00 - -Change List -========================================== - -sbndcode ---------------------------------------------------- - -* 2022-05-06 fran-nicar : Merge branch 'release/v09_50_00' -* 2022-05-06 fran-nicar : Update to larsoft version v09_50_00 -* 2022-05-06 Francisco Javier Nicolás-Arnaldos : Merge pull request #282 from lgarren/feature/lg_v09_50_00 -* 2022-05-06 Francisco Javier Nicolás-Arnaldos : Merge pull request #280 from SBNSoftware/feature/lnguyen_cone_shape_feature_bdt -* 2022-05-04 Lynn Garren : lardataobj_OpticalDetectorData is gone -* 2022-05-04 Lynn Garren : add headers needed for larsoft v09_50_00 -* 2022-05-04 Lynn Garren : larcorealg test headers have moved -* 2022-05-03 VCLanNguyen : Merge branch 'develop' into feature/lnguyen_cone_shape_feature_bdt -* 2022-05-03 Vu Chi Lan Nguyen : point sbndcode product_deps to the new sbnd_data v01_13_00 -* 2022-05-02 Vu Chi Lan Nguyen : Point to the new xml on sbnd_data v1_13_00 -* 2022-04-29 fran-nicar : Merge tag 'v09_49_00' into develop -* 2022-04-27 Vu Chi Lan Nguyen : fixed typo -* 2022-04-27 Vu Chi Lan Nguyen : enable ConeCharge feature for PfoCharBDT1&2, moved LAr Neutrino Hierarchy block to before PfoCharBDT2, change name of PfoCharBDT -* 2022-04-20 Vu Chi Lan Nguyen : enable Cone Charge Feature tool in Track Shower BDT1 -* 2022-04-20 Vu Chi Lan Nguyen : enable Cone Charge Feature tool in Track Shower BDT - -sbndutil ---------------------------------------------------- - -* 2022-05-06 fran-nicar : Merge tag 'v09_50_00' into develop -* 2022-05-06 fran-nicar : Merge branch 'release/v09_50_00' -* 2022-05-06 fran-nicar : Update to larsoft version v09_50_00 -* 2022-04-29 fran-nicar : Merge tag 'v09_49_00' into develop + permalink: /404.html + layout: default + --- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+ SSSBN +
From f46b26beb4764f3ec002e89883e222236623b17d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 6 May 2022 20:55:10 +0200 Subject: [PATCH 0142/1437] Create ReleaseNotes095000.md --- sbndcode_wiki/Releases/ReleaseNotes095000.md | 81 ++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095000.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095000.md b/sbndcode_wiki/Releases/ReleaseNotes095000.md new file mode 100644 index 000000000..ffe118202 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095000.md @@ -0,0 +1,81 @@ +--- +layout: page +title: ReleaseNotes095000 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.50.00 | 06 may 2022 | [ReleaseNotes](ReleaseNotes095000.html) | +| --- | --- | --- | + + + +sbndcode v09_50_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_50_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_50_00/sbndcode-v09_50_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR 280: + * Add a new cone shape feature for PFO Characterisation in PandoraNu. + * The changes include: + * Enable Cone Charge Feature Tools to run at PfoCharBDT1&2 + * Rename PfoCharBDT appropriately since now there are two trees at stage 1 and 2 + * Set 0.51 to match the cut value of each BDT. + * Neutrino Algorithms are moved from after to before the PfoCharBDT2. + * sbnd_data updated to v01_13_00 + +* sbndcode PR 282: + * add headers needed for larsoft v09_50_00 + * Also, larcorealg test headers will move: + * test/Geometry/geometry_unit_test_base.h becomes larcorealg/TestUtils/geometry_unit_test_base.h + * test/Geometry/GeometryTestAlg.h becomes larcorealg/test/Geometry/GeometryTestAlg.h + * test/Geometry/GeometryIteratorLoopTestAlg.h becomes larcorealg/test/Geometry/GeometryIteratorLoopTestAlg.h + * test/Geometry/GeometryIteratorTestAlg.h becomes larcorealg/test/Geometry/GeometryIteratorTestAlg.h + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_50_00 +* larsoft v09_50_00 +* sbnd_data v01_13_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-05-06 fran-nicar : Merge branch 'release/v09_50_00' +* 2022-05-06 fran-nicar : Update to larsoft version v09_50_00 +* 2022-05-06 Francisco Javier Nicolás-Arnaldos : Merge pull request #282 from lgarren/feature/lg_v09_50_00 +* 2022-05-06 Francisco Javier Nicolás-Arnaldos : Merge pull request #280 from SBNSoftware/feature/lnguyen_cone_shape_feature_bdt +* 2022-05-04 Lynn Garren : lardataobj_OpticalDetectorData is gone +* 2022-05-04 Lynn Garren : add headers needed for larsoft v09_50_00 +* 2022-05-04 Lynn Garren : larcorealg test headers have moved +* 2022-05-03 VCLanNguyen : Merge branch 'develop' into feature/lnguyen_cone_shape_feature_bdt +* 2022-05-03 Vu Chi Lan Nguyen : point sbndcode product_deps to the new sbnd_data v01_13_00 +* 2022-05-02 Vu Chi Lan Nguyen : Point to the new xml on sbnd_data v1_13_00 +* 2022-04-29 fran-nicar : Merge tag 'v09_49_00' into develop +* 2022-04-27 Vu Chi Lan Nguyen : fixed typo +* 2022-04-27 Vu Chi Lan Nguyen : enable ConeCharge feature for PfoCharBDT1&2, moved LAr Neutrino Hierarchy block to before PfoCharBDT2, change name of PfoCharBDT +* 2022-04-20 Vu Chi Lan Nguyen : enable Cone Charge Feature tool in Track Shower BDT1 +* 2022-04-20 Vu Chi Lan Nguyen : enable Cone Charge Feature tool in Track Shower BDT + +sbndutil +--------------------------------------------------- + +* 2022-05-06 fran-nicar : Merge tag 'v09_50_00' into develop +* 2022-05-06 fran-nicar : Merge branch 'release/v09_50_00' +* 2022-05-06 fran-nicar : Update to larsoft version v09_50_00 +* 2022-04-29 fran-nicar : Merge tag 'v09_49_00' into develop + From d1a8c9c0c2c3d46bd4756a7d53983e5d6baab584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 13 May 2022 18:42:30 +0200 Subject: [PATCH 0143/1437] Create ReleaseNotes095100.md --- sbndcode_wiki/Releases/ReleaseNotes095100.md | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095100.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095100.md b/sbndcode_wiki/Releases/ReleaseNotes095100.md new file mode 100644 index 000000000..3335cfaa6 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095100.md @@ -0,0 +1,51 @@ +--- +layout: page +title: ReleaseNotes095100 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.51.00 | 13 may 2022 | [ReleaseNotes](ReleaseNotes095100.html) | +| --- | --- | --- | + + + +sbndcode v09_51_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_51_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_51_00/sbndcode-v09_51_00.html) + +Purpose +--------------------------------------------------- +Weekle release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_51_00 +* larsoft v09_51_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-05-13 fran-nicar : Merge branch 'release/v09_51_00' +* 2022-05-13 fran-nicar : Update to larsoft v09_51_00 +* 2022-05-06 fran-nicar : Merge tag 'v09_50_00' into develop + +sbndutil +--------------------------------------------------- + +* 2022-05-13 fran-nicar : Merge tag 'v09_51_00' into develop +* 2022-05-13 fran-nicar : Merge branch 'release/v09_51_00' +* 2022-05-13 fran-nicar : Update to larsoft v09_51_00 +* 2022-05-06 fran-nicar : Merge tag 'v09_50_00' into develop From cabdd6e1bd19b2d0048ff338b51da866472c793e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 13 May 2022 18:44:15 +0200 Subject: [PATCH 0144/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 1530e7c21..1b890e403 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_51_00` | Weekly release | [Release Notes](ReleaseNotes095100.html) |`v09_50_00` | Weekly release | [Release Notes](ReleaseNotes095000.html) |`v09_49_00` | Weekly release | [Release Notes](ReleaseNotes094900.html) |`v09_48_01` | Weekly release | [Release Notes](ReleaseNotes094801.html) From 3aea6877eb58180ddc358387a53979f47b1dbb97 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 18 May 2022 22:19:32 -0700 Subject: [PATCH 0145/1437] Update Roles_and_people.md --- icaruscode_wiki/Roles_and_people.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/icaruscode_wiki/Roles_and_people.md b/icaruscode_wiki/Roles_and_people.md index 28b2d71d2..7e4fdc116 100644 --- a/icaruscode_wiki/Roles_and_people.md +++ b/icaruscode_wiki/Roles_and_people.md @@ -13,11 +13,12 @@ Release management Release managers build and publish the official releases of ICARUS code ([ICARUS LArSoft](https://cdcvs.fnal.gov/redmine/projects/icaruscode)). -person | e-mail address -------------- | --------------------------- -Tracy Usher | - +person | e-mail address +----------------- | ------------------------------ +Sergey Martynenko | +Matt Rosenberg | +Past release managers: [Tracy Usher](mailto:usher@slac.stanford.edu). Production management ---------------------- From 4c79feef9fed19409e4b038f1dc68ddeba7040b3 Mon Sep 17 00:00:00 2001 From: Chris Hilgenberg <47982347+chilge@users.noreply.github.com> Date: Thu, 19 May 2022 11:23:23 -0500 Subject: [PATCH 0146/1437] Update sbnci_main.md --- sbn/sbnci_wiki/sbnci_main.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sbn/sbnci_wiki/sbnci_main.md b/sbn/sbnci_wiki/sbnci_main.md index 6d1872621..ac1dd0254 100644 --- a/sbn/sbnci_wiki/sbnci_main.md +++ b/sbn/sbnci_wiki/sbnci_main.md @@ -10,7 +10,6 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati ## Outages #### sbndcode - BNB nu + cosmics unavailable for 'current' -- crt test unavailable for 'current' - references unavailable for SBN2022A and 'current' #### icaruscode @@ -19,8 +18,8 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati - references unavailable for SBN2022A and 'current' ## Approved reference tags (and alias, if available) -- sbndcode: `v09_37_01_03p01` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_48_01` (current) -- icaruscode: `v09_37_01_03` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_48_01` (current) +- sbndcode: `v09_37_01_03p01` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_51_00` (current) +- icaruscode: `v09_37_01_03` (sbn2021c), `v09_37_02_01` (sbn2022a), `v09_51_00` (current) ## Quick Start Guide 1. Get a valid kerberos ticket with forwarding enabled (`kinit -f `) @@ -29,10 +28,10 @@ Welcome to the SBN CI & validation main page! If you just want to run a validati ``` source /cvmfs/.opensciencegrid.org/products//setup_.sh ``` -4. `setup sbnci v09_48_01 -q e20:prof` +4. `setup sbnci v09_51_00_01 -q e20:prof` 5. `source get_proxy.sh` 6. To validate your code, you will need to provide the following. -- Validation workflow (`tpcreco`, `tpcsim`, `pds`, or `crt`) +- Validation workflow (`tpcreco`, `tpcsim`, `pdssim`, `pdsreco` or `crt`) - From `SBNSoftware/` only, a branch or list of branches (`repository1@branch1 repository2@branch2 ...`) or from `LArSoft/` if it's a tag of the form `LARSOFT_SUITE_vXX_YY_ZZ` - The approved reference tag that you want to test your branch(es) against From 09506887e1f8bb305d98fd699c00eb404c9a3e59 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Mon, 23 May 2022 11:34:41 -0700 Subject: [PATCH 0147/1437] Update Detector_geometry.md --- icaruscode_wiki/Detector_geometry.md | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index a93e85774..6d523990a 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -24,6 +24,8 @@ different from the one configured in the current job | version | introduced | default | file path | based on | description | ------------ | ----------- | ----------- | --------------------------------------------------------------------------- | ----------- | ------------ +| | _not yet_ | | `icarusalg/Geometry/gdml/icarus_complete_20220518_overburden.gdml` | `20210527` | closer cryostats, added building and CRT details; with concrete overburden +| | _not yet_ | | `icarusalg/Geometry/gdml/icarus_complete_20220518_no_overburden.gdml` | `20210527` | closer cryostats, added building and CRT details; with no concrete overburden | `icarus_v3` | `v09_25_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210527_overburden.gdml` | `icarus_v2` | closer cryostats, added building details; with concrete overburden | `icarus_v3` | `v09_25_00` | `v09_25_00` | `icarusalg/Geometry/gdml/icarus_complete_20210527_no_overburden.gdml` | `icarus_v2` | closer cryostats, added building details; with no concrete overburden | `icarus_v2`* | `v09_18_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210311_rotUV.gdml` | `20201107` | fixed orientation of wires, with concrete overburden @@ -40,16 +42,20 @@ different from the one configured in the current job ### Older versions -| version | introduced | default | removed | file path | description -| ---------- | ----------- | ----------- | ----------- | -------------------------------------------------------------------- | ------------------------------ -| `20200307` | `v08_45_00` | `v08_50_02` | `v08_57_00` | `icaruscode/Geometry/gdml/icarus_complete_no_overburden.gdml` | complete geometry, first induction plane wires 9 m, with no concrete overburden -| `20200307` | `v08_44_00` | | `v08_57_00` | `icaruscode/Geometry/gdml/icarus_complete.gdml` | complete geometry, first induction plane wires 9 m, with concrete overburden -| | `v08_44_00` | `v08_44_00` | | `icaruscode/Geometry/gdml/icarus_single_complete_no_overburden.gdml` | complete geometry, first induction plane wires 18 m, with no concrete overburden -| | `v08_44_00` | | | `icaruscode/Geometry/gdml/icarus_single_complete.gdml` | complete geometry, first induction plane wires 18 m, with concrete overburden -| | `v08_44_00` | | `v08_45_00` | `icaruscode/Geometry/gdml/icarus_complete_no_overburden.gdml` | complete geometry, first induction plane wires 9 m, with half concrete overburden (bug) -| | `v08_41_00` | | `v08_44_00` | `icaruscode/Geometry/gdml/icarus_complete_no_overburden.gdml` | complete geometry, first induction plane wires 18 m, with no concrete overburden -| | `v08_30_00` | `v08_30_00` | `v08_44_00` | `icaruscode/Geometry/gdml/icarus_complete_light.gdml` | `icarus_complete.gdml`, "temporary" version with niobium and molybdenum components of steel removed -| | ... | ... | `v08_41_00` | `icaruscode/Geometry/gdml/icarus_complete.gdml` | complete geometry: TPC (first induction plane wires 18 m), PMT, CRT, concrete overburden +| name | version | introduced | default | removed | file path | description +| ---------- | ----------- | ----------- | ----------- | ----------- | --------------------------------------------------------------------- | ------------------------------ +| `20210527` | `icarus_v3` | `v09_25_00` | | | `icarusalg/Geometry/gdml/icarus_complete_20210527_overburden.gdml` | closer cryostats, added building details; with concrete overburden +| `20210527` | `icarus_v3` | `v09_25_00` | `v09_25_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210527_no_overburden.gdml` | closer cryostats, added building details; with no concrete overburden +| `20200307` | `20200307` | `v08_45_00` | `v08_50_02` | `v08_57_00` | `icaruscode/Geometry/gdml/icarus_complete_no_overburden.gdml` | complete geometry, first induction plane wires 9 m, with no concrete overburden +| `20200307` | `20200307` | `v08_44_00` | | `v08_57_00` | `icaruscode/Geometry/gdml/icarus_complete.gdml` | complete geometry, first induction plane wires 9 m, with concrete overburden +| | | `v08_44_00` | `v08_44_00` | | `icaruscode/Geometry/gdml/icarus_single_complete_no_overburden.gdml` | complete geometry, first induction plane wires 18 m, with no concrete overburden +| | | `v08_44_00` | | | `icaruscode/Geometry/gdml/icarus_single_complete.gdml` | complete geometry, first induction plane wires 18 m, with concrete overburden +| | | `v08_44_00` | | `v08_45_00` | `icaruscode/Geometry/gdml/icarus_complete_no_overburden.gdml` | complete geometry, first induction plane wires 9 m, with half concrete overburden (bug) +| | | `v08_41_00` | | `v08_44_00` | `icaruscode/Geometry/gdml/icarus_complete_no_overburden.gdml` | complete geometry, first induction plane wires 18 m, with no concrete overburden +| | | `v08_30_00` | `v08_30_00` | `v08_44_00` | `icaruscode/Geometry/gdml/icarus_complete_light.gdml` | `icarus_complete.gdml`, "temporary" version with niobium and molybdenum components of steel removed +| | | ... | ... | `v08_41_00` | `icaruscode/Geometry/gdml/icarus_complete.gdml` | complete geometry: TPC (first induction plane wires 18 m), PMT, CRT, concrete overburden + +In this table, "name" refers to the specific geometry, while "version" is the "detector name" that was assigned to it in LArSoft. All geometry files with the same version are expected to be compatible at LArSoft `GeometryCore` level, but they may differ either in format or in details besides the cryostat/TPC/plane/wire/PMT/CRT active components. > _Note_: detector geometry description files have been moved from > [`icaruscode`](https://github.com/SBNSoftware/icaruscode/blob/develop/icaruscode/Geometry/gdml) From dd0ff9807f18a73e1ebfe716e267f334effd4d2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 24 May 2022 09:41:42 +0200 Subject: [PATCH 0148/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 1b890e403..0633ea102 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_52_00` | Weekly release | [Release Notes](ReleaseNotes095200.html) |`v09_51_00` | Weekly release | [Release Notes](ReleaseNotes095100.html) |`v09_50_00` | Weekly release | [Release Notes](ReleaseNotes095000.html) |`v09_49_00` | Weekly release | [Release Notes](ReleaseNotes094900.html) From 555e92aad47f1a9e30ca7f1281caa0de3c829eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 24 May 2022 10:37:41 +0200 Subject: [PATCH 0149/1437] Create ReleaseNotes095200.md --- sbndcode_wiki/Releases/ReleaseNotes095200.md | 143 +++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095200.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095200.md b/sbndcode_wiki/Releases/ReleaseNotes095200.md new file mode 100644 index 000000000..059e34f6e --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095200.md @@ -0,0 +1,143 @@ +--- +layout: page +title: ReleaseNotes095200 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.52.00 | 24 may 2022 | [ReleaseNotes](ReleaseNotes095200.html) | +| --- | --- | --- | + + + +sbndcode v09_52_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_52_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_52_00/sbndcode-v09_52_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR 285: + * Modification of the random number generator function called at DetSim for XARAPUCAs + * Detsim XARAPUCAs: Change shoot() to fire() + +* sbndcode PR 283: + * Adds a fcl for running CRUMBS as a standalone producer. + +* sbndcode PR 281: + * Updated CRT Simulation + * Summary of changes: + * introduction of FEBData to store all 32 channels for each FEB + * CRTData is now constructed from FEBData objects with a new CRTSlimmer module + * CRT simulation triggering has been improved + * CRT waveform simulation has been implemented + * FEB dead time is now simulated + * CRT unit tests have been added + +Bug fixes +--------------------------------------------------- +* sbndcode PR 284: + * Small bugfix + * TPB time now implemented for simphotonslite vis-XARAPUCAs + + +Updated dependencies +--------------------------------------------------- +* sbncode v09_52_00 +* larsoft v09_52_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-05-24 fran-nicar : Merge branch 'release/v09_52_00' +* 2022-05-24 fran-nicar : Update to larsoft v09_52_00 +* 2022-05-23 Francisco Javier Nicolás-Arnaldos : Merge pull request #281 from SBNSoftware/feature/mdeltutt_crt_sim +* 2022-05-23 Francisco Javier Nicolás-Arnaldos : Merge pull request #283 from henrylay97/feature/hlay_crumbs_how_tos +* 2022-05-23 Francisco Javier Nicolás-Arnaldos : Merge pull request #284 from SBNSoftware/bugfix/rodrigoa_TPB_bug +* 2022-05-23 Francisco Javier Nicolás-Arnaldos : Merge branch 'develop' into bugfix/rodrigoa_TPB_bug +* 2022-05-23 Francisco Javier Nicolás-Arnaldos : Merge pull request #285 from ikatza/feature/icaza_opdetsim_fires +* 2022-05-19 Marco Del Tutto : Merge branch 'feature/mdeltutt_crt_sim' of github.com:SBNSoftware/sbndcode into feature/mdeltutt_crt_sim +* 2022-05-19 Marco Del Tutto : Turn off debug printouts +* 2022-05-19 Marco Del Tutto : Add ServiceHandle include +* 2022-05-18 Rodrigo Alvarez Garrote : Update DigiArapucaSBNDAlg.cc +* 2022-05-17 Iker de Icaza Astiz : Change shoot() to fire() +* 2022-05-17 Henry Lay : Dom-ify the fcl +* 2022-05-05 Henry Lay : Run CRUMBS as standalone producer +* 2022-05-13 fran-nicar : Merge tag 'v09_51_00' into develop +* 2022-05-13 Marco Del Tutto : Merge branch 'develop' into feature/mdeltutt_crt_sim +* 2022-05-10 Marco Del Tutto : Reset fAuxData +* 2022-05-06 Marco Del Tutto : Improve trigger logic +* 2022-05-05 Marco Del Tutto : Save FEBTruthInfo in the FEBData<->AuxDetIDE assns, and use it in the CRTSlimmer module +* 2022-05-05 Marco Del Tutto : Improve triggering, plus save indeces of sipms assns to AuxDetIDE +* 2022-05-05 Marco Del Tutto : Fix x-y trigger bug +* 2022-05-05 Marco Del Tutto : Add param to better debug trigger +* 2022-04-28 Marco Del Tutto : CRTTrack times are in double format +* 2022-04-28 Marco Del Tutto : Add appropriate time offset to CRT Hits +* 2022-04-13 Marco Del Tutto : Clean up +* 2022-04-11 Marco Del Tutto : Add doxygen strings +* 2022-04-11 Marco Del Tutto : Finish removing couts +* 2022-04-11 Marco Del Tutto : Switch to LogDebug +* 2022-04-11 Marco Del Tutto : Switch to LogDebug +* 2022-04-11 Marco Del Tutto : Exclude MINOS modules based on name, not detector ID +* 2022-04-11 Marco Del Tutto : Add CRT Geometry tests +* 2022-04-08 Marco Del Tutto : Update crtsim_sbnd.fcl with new CRT config +* 2022-04-08 Marco Del Tutto : Move Trigger struct to CreateData method +* 2022-04-08 Marco Del Tutto : Improved comments +* 2022-04-08 Marco Del Tutto : Add waveform emulation test +* 2022-04-08 Marco Del Tutto : Add method to return crt det sim parameters +* 2022-04-08 Marco Del Tutto : Move ChargeResponse calculation to its own function +* 2022-04-08 Marco Del Tutto : Use class engine for getChannelTriggerTicks method, and also make getChannelTriggerTicks public +* 2022-04-08 Marco Del Tutto : Move param config to its own function +* 2022-04-07 Marco Del Tutto : Fix conflicts +* 2022-04-07 Marco Del Tutto : Start adding CRT det sim test +* 2022-04-07 Marco Del Tutto : Fix indentation +* 2022-04-07 Marco Del Tutto : Remove unused libraries +* 2022-04-07 Marco Del Tutto : Clean up CRTDetSimParams file +* 2022-04-07 Marco Del Tutto : Remove unused libraries +* 2022-04-05 Marco Del Tutto : Fix ProcessStrips declaration +* 2022-04-05 Marco Del Tutto : Further clean up +* 2022-04-05 Marco Del Tutto : Clean up and document +* 2022-04-05 Marco Del Tutto : Clean up +* 2022-04-05 Marco Del Tutto : Move trigger decision to CreateData method +* 2022-04-05 Marco Del Tutto : Improve printouts +* 2022-04-05 Marco Del Tutto : Clean up +* 2022-04-05 Marco Del Tutto : Use AND among sipms to save strips +* 2022-04-05 Marco Del Tutto : Add another config for saving strips, currently commented out. +* 2022-04-04 Marco Del Tutto : Fix config param +* 2022-04-01 Marco Del Tutto : Fix trigger time per FEB +* 2022-04-01 Marco Del Tutto : Implement FEB-dependent trigger time +* 2022-04-01 Marco Del Tutto : Add fhicl config to make the two sipms time simulation the same +* 2022-03-31 Marco Del Tutto : Make waveform emul fhicl configurable +* 2022-03-31 Marco Del Tutto : Remove not-needed couts. +* 2022-03-31 Marco Del Tutto : Move final pritout before std::move statement. +* 2022-03-31 Marco Del Tutto : Print out number of tracks at end of event +* 2022-03-31 Marco Del Tutto : Use T1 instead of T0 +* 2022-03-30 Marco Del Tutto : Fix conflicts and clean up +* 2022-03-29 Marco Del Tutto : Strip coincidence now implemented at the triggering stage, add time offset, and others +* 2022-03-24 Marco Del Tutto : Add waveform emulation to CRT simulation +* 2022-03-24 Marco Del Tutto : Add CRTSlimmer to legacy detsim fcl +* 2022-03-24 Marco Del Tutto : Add CRTSlimmer to standard detsim fcl +* 2022-03-24 Marco Del Tutto : CRTDetSim module now produces FEBData +* 2022-03-24 Marco Del Tutto : Add CRTSlimmer module to go from FEBData to CRTData +* 2022-03-23 Marco Del Tutto : Initial implementation of FEBData creation by CRTSimAlg +* 2022-03-23 Marco Del Tutto : Reset Taggers at every event +* 2022-03-23 Marco Del Tutto : Add copynumbers to CRT modules +* 2022-03-22 Marco Del Tutto : Fix fcl paths +* 2022-03-22 Marco Del Tutto : Move bulk of CRT simulation to CRTDetSimAlg class + +sbndutil +--------------------------------------------------- + +* 2022-05-24 fran-nicar : Merge tag 'v09_52_00' into develop +* 2022-05-24 fran-nicar : Merge branch 'release/v09_52_00' +* 2022-05-24 fran-nicar : Update to larsoft v09_52_00 +* 2022-05-13 fran-nicar : Merge tag 'v09_51_00' into develop From e82c31d57b8c52105bb8d4b34b1b1b54022369a9 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 24 May 2022 21:17:46 -0500 Subject: [PATCH 0150/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 25ae96019..d4cbc8ab8 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_00_01 as of 2/2022) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_01_00 as of 5/2022) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` @@ -55,7 +55,7 @@ If you're doing development work, then you'll want to be able to create a develo 1. Setup the `mrb` environment: ```bash -setup mrb v5_18_01 +setup mrb v5_19_05 export MRB_PROJECT=sbndaq export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) @@ -164,7 +164,7 @@ setup sbndaq {version} -q {qualifiers} ``` 3. Create a new `localProducts` directory, _while keeping the same `srcs` directory_: ```bash -setup mrb v5_18_01 +setup mrb v5_19_05 export MRB_PROJECT=sbndaq cd mrb newDev -p @@ -187,12 +187,12 @@ Put the commands that never change into your bash login script ```bash source /daq/software/products/setup source /daq/software/products_dev/setup -setup mrb v5_18_01 +setup mrb v5_19_05 export MRB_PROJECT=sbndaq ``` And then to checkout and build `sbndaq` and `sbndaq-artdaq` (most common situation) source the script below _from your work directory_: ```bash -setup sbndaq v1_00_01 -q e20:prof:s112 +setup sbndaq v1_01_00 -q e20:prof:s112 export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) echo sbndaq version: $my_sbndaq_version From 82dd21c364620078fdf55074b1ba9fe95ae9607a Mon Sep 17 00:00:00 2001 From: Wesley Ketchum Date: Wed, 25 May 2022 16:04:25 +0200 Subject: [PATCH 0151/1437] Update index.md --- index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.md b/index.md index d61c0fb0e..9800fc443 100644 --- a/index.md +++ b/index.md @@ -16,6 +16,8 @@ See below for helpful links: ## [Analysis Infrastructure](AnalysisInfrastructure/index) ## ### [How to Add New Features, Fix Bugs, Or Otherwise Develop](AnalysisInfrastructure/how-to-develop) ### +### [LArSoft Wiki](https://larsoft.github.io/LArSoftWiki/) ### + ## List of Repositories ## ### Offline Repositories ### From ed1bc4c3ec52fa3b27ac009debf17ae74813ce64 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 26 May 2022 12:42:39 -0700 Subject: [PATCH 0152/1437] Update ana.md --- AnalysisInfrastructure/ana.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AnalysisInfrastructure/ana.md b/AnalysisInfrastructure/ana.md index 474fe323d..e46013f66 100644 --- a/AnalysisInfrastructure/ana.md +++ b/AnalysisInfrastructure/ana.md @@ -3,3 +3,5 @@ Material: * [coding guidelines for CAF software](../sbn/codingconv/CodingConventions.md) (and beyond) +Tutorials on the Coomon Analysis Format and CAFana: +* code from some tutorials given in the past is collected in [SBNSoftware/sbntutorials](https://github.com/SBNSoftware/sbntutorials) From dc62e2a673a9bc7c5a7194600eaac15fc4bd4a06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 27 May 2022 18:10:35 +0200 Subject: [PATCH 0153/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 0633ea102..60e95640e 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_52_01` | Weekly release | [Release Notes](ReleaseNotes095201.html) |`v09_52_00` | Weekly release | [Release Notes](ReleaseNotes095200.html) |`v09_51_00` | Weekly release | [Release Notes](ReleaseNotes095100.html) |`v09_50_00` | Weekly release | [Release Notes](ReleaseNotes095000.html) From 8715c757c1c33ac1f3ba2f093069854bd780c07b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 27 May 2022 18:35:43 +0200 Subject: [PATCH 0154/1437] Create ReleaseNotes095201.md --- sbndcode_wiki/Releases/ReleaseNotes095201.md | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095201.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095201.md b/sbndcode_wiki/Releases/ReleaseNotes095201.md new file mode 100644 index 000000000..6c24b9977 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095201.md @@ -0,0 +1,51 @@ +--- +layout: page +title: ReleaseNotes095201 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.52.01 | 27 may 2022 | [ReleaseNotes](ReleaseNotes095201.html) | +| --- | --- | --- | + + + +sbndcode v09_52_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_52_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_52_01/sbndcode-v09_52_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_52_01 +* larsoft v09_52_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-05-27 Fran Nicolas : Merge branch 'release/v09_52_01' +* 2022-05-27 Fran Nicolas : Update to larsoft v09_52_01 +* 2022-05-24 fran-nicar : Merge tag 'v09_52_00' into develop + +sbndutil +--------------------------------------------------- + +* 2022-05-27 Fran Nicolas : Merge tag 'v09_52_01' into develop +* 2022-05-27 Fran Nicolas : Merge branch 'release/v09_52_01' +* 2022-05-27 Fran Nicolas : Update to larsoft v09_52_01 +* 2022-05-24 fran-nicar : Merge tag 'v09_52_00' into develop From 85f9900cc01c6090d46778a082a4883a6f4a843c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 3 Jun 2022 15:48:45 +0200 Subject: [PATCH 0155/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 60e95640e..1fa51e6c6 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_53_00_01` | Weekly release | [Release Notes](ReleaseNotes09530001.html) |`v09_52_01` | Weekly release | [Release Notes](ReleaseNotes095201.html) |`v09_52_00` | Weekly release | [Release Notes](ReleaseNotes095200.html) |`v09_51_00` | Weekly release | [Release Notes](ReleaseNotes095100.html) From 83c1832774cbb6726adf9930ec3940e7d1031f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 3 Jun 2022 16:46:57 +0200 Subject: [PATCH 0156/1437] Create ReleaseNotes09530001.md --- .../Releases/ReleaseNotes09530001.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09530001.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09530001.md b/sbndcode_wiki/Releases/ReleaseNotes09530001.md new file mode 100644 index 000000000..62016b65a --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09530001.md @@ -0,0 +1,51 @@ +--- +layout: page +title: ReleaseNotes09530001 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.53.00.01 | 03 jun 2022 | [ReleaseNotes](ReleaseNotes09530001.html) | +| --- | --- | --- | + + + +sbndcode v09_53_00_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_53_00_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_53_00_01/sbndcode-v09_53_00_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +- sbncode v09_53_00_01 +- larsoft v09_53_00_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-06-03 Fran Nicolas : Merge branch 'release/v09_53_00_01' +* 2022-06-03 Fran Nicolas : Update to v09_53_00_01 +* 2022-05-27 Fran Nicolas : Merge tag 'v09_52_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-06-03 Fran Nicolas : Merge tag 'v09_53_00_01' into develop +* 2022-06-03 Fran Nicolas : Merge branch 'release/v09_53_00_01' +* 2022-06-03 Fran Nicolas : Update to v09_53_00_01 +* 2022-05-27 Fran Nicolas : Merge tag 'v09_52_01' into develop From 0f1e6aa705fcc3019238dcaf07bff9893a0195d6 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 7 Jun 2022 17:07:43 -0400 Subject: [PATCH 0157/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index e3d2223a7..725b55d51 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -29,6 +29,11 @@ SBND MC | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| SBN2022A SBND EW-CRT crossing muon triggers, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | 10000 | reco2 | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_sbnd | +| --- | --- | --- | 10000 | calib tuple | hist_official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_sbnd | +| --- | --- | --- | 10000 | caf | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_caf_sbnd | +| --- | --- | --- | 10000 | flatcaf | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_flat_caf_sbnd | | BNB nue + cosmic | MC2021Bv1 | v09_28_01_02 | 15000 | reco2 | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_sbnd | | --- | --- | --- | 14800 | flat caf | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_flat_caf_sbnd | | BNB nue + cosmic | MC2021Bv1 | v09_28_01_02 | 15000 | reco1 | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_gen_g4_detsim_reco1_sbnd | From cc6d4c38a46006e5ab236da42fb916dde88fc30b Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 7 Jun 2022 17:28:46 -0400 Subject: [PATCH 0158/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 45 +++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 725b55d51..ff2733d60 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -29,11 +29,46 @@ SBND MC | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| SBN2022A SBND EW-CRT crossing muon triggers, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | 10000 | reco2 | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_sbnd | -| --- | --- | --- | 10000 | calib tuple | hist_official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_sbnd | -| --- | --- | --- | 10000 | caf | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_caf_sbnd | -| --- | --- | --- | 10000 | flatcaf | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_flat_caf_sbnd | +| BNB Nue + cosmics | MC2022A | v09_37_02_04 | 175000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_reco2_concat_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_reco2_concat_flat_caf_sbnd | +| BNB Full Osc + cosmics | MC2022A | v09_37_02_04 | 175000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_concat_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_concat_flat_caf_sbnd | +| In time cosmics | MC2022A | v09_37_02_04 | 380000 | reco1 | official_MCP2022A_prodcorsika_proton_intime_filter_sce_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2022A_prodcorsika_proton_intime_filter_sce_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodcorsika_proton_intime_filter_sce_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2022A_prodcorsika_proton_intime_filter_sce_reco2_concat_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodcorsika_proton_intime_filter_sce_reco2_concat_flat_caf_sbnd | +| BNB nu+cosmics | MC2022A | v09_37_02_04 | 3500000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_concat_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_concat_flat_caf_sbnd | +| BNB nue+cosmics, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_reco2_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_reco2_flat_caf_sbnd | +| BNB+cosmics, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_flat_caf_sbnd | +| NS-CRT crossing muon triggers, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodcorsika_cosmics_proton_frontbackcrt_mu_filter_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2022A_prodcorsika_cosmics_proton_frontbackcrt_mu_filter_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodcorsika_cosmics_proton_frontbackcrt_mu_filter_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2022A_prodcorsika_cosmics_proton_frontbackcrt_mu_filter_reco2_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodcorsika_cosmics_proton_frontbackcrt_mu_filter_reco2_flat_caf_sbnd | +| EW-CRT crossing muon triggers, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_flat_caf_sbnd | | BNB nue + cosmic | MC2021Bv1 | v09_28_01_02 | 15000 | reco2 | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_sbnd | | --- | --- | --- | 14800 | flat caf | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_flat_caf_sbnd | | BNB nue + cosmic | MC2021Bv1 | v09_28_01_02 | 15000 | reco1 | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_gen_g4_detsim_reco1_sbnd | From 66602beafbb1403a66ae496ce8f6917f981f3d63 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 8 Jun 2022 16:20:58 -0500 Subject: [PATCH 0159/1437] Create boardreaders.md --- sbn_online_wiki/boardreaders.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 sbn_online_wiki/boardreaders.md diff --git a/sbn_online_wiki/boardreaders.md b/sbn_online_wiki/boardreaders.md new file mode 100644 index 000000000..7d2f1fa00 --- /dev/null +++ b/sbn_online_wiki/boardreaders.md @@ -0,0 +1,8 @@ +# List of BoardReaders + +| Name | Lead developer | Documentation | Documentation Complete | +| ---- | -------------- | ------------- | ---------------------- | +| CRT | A.Aduszkiewicz | [CAEN DT5702 (CRT)](CRT/CAEN_DT5702_readout.md) | ? | +| PMT | ? | ? | | +| TPC | ? | | | +| trigger | ? | | | From 23aaba43f2aabbf8c8cef710ea5e76e04ad4aa4d Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 8 Jun 2022 16:21:03 -0500 Subject: [PATCH 0160/1437] Update sbndaq_Wiki.md --- sbn_online_wiki/sbndaq_Wiki.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index ad6cfd100..4fff0b4d5 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -63,7 +63,7 @@ see the old wiki for a lot of historical detail. sbndaq detector components ---------------------------------------------- -* [CAEN DT5702 (CRT)](CRT/CAEN_DT5702_readout.md) +* [List of boardreaders](boardreaders.md) * [White Rabbit Timing System](WR/WhiteRabbit.md) * Configuring the [Multi Function Timing Unit (MFTU)](ACnet/MFTU.md) Beam Timing Interface From f17e7fdaec52ad550dc1b3eae699730a23dd0b52 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 8 Jun 2022 16:30:31 -0500 Subject: [PATCH 0161/1437] Update and rename boardreaders.md to Boardreaders.md --- sbn_online_wiki/Boardreaders.md | 14 ++++++++++++++ sbn_online_wiki/boardreaders.md | 8 -------- 2 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 sbn_online_wiki/Boardreaders.md delete mode 100644 sbn_online_wiki/boardreaders.md diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md new file mode 100644 index 000000000..a6d47ca4a --- /dev/null +++ b/sbn_online_wiki/Boardreaders.md @@ -0,0 +1,14 @@ +# List of BoardReaders + +| Name | Lead developer(s) | Documentation | Documentation Complete | +| ---- | -------------- | ------------- | ---------------------- | +| CRT | A.Aduszkiewicz | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | +| PMT | | | | +| TPC | | | | +| trigger | | | | +| WR | | [White Rabbit Timing System](WR/WhiteRabbit.md) | | + + +List made as a result of a request made on Jun 6, 2022 on the Online Meeting. +- **lead developer** – refers to person familiar with the code, in particular the part responsible for communication with the hardware. +- **documentation** – We yet need to define what should be included in the documentation, and what criteria it should fulfil to be called "complete" diff --git a/sbn_online_wiki/boardreaders.md b/sbn_online_wiki/boardreaders.md deleted file mode 100644 index 7d2f1fa00..000000000 --- a/sbn_online_wiki/boardreaders.md +++ /dev/null @@ -1,8 +0,0 @@ -# List of BoardReaders - -| Name | Lead developer | Documentation | Documentation Complete | -| ---- | -------------- | ------------- | ---------------------- | -| CRT | A.Aduszkiewicz | [CAEN DT5702 (CRT)](CRT/CAEN_DT5702_readout.md) | ? | -| PMT | ? | ? | | -| TPC | ? | | | -| trigger | ? | | | From da08e76edebdca3a9041f603ec810db68b40269c Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 8 Jun 2022 16:30:37 -0500 Subject: [PATCH 0162/1437] Update sbndaq_Wiki.md --- sbn_online_wiki/sbndaq_Wiki.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 4fff0b4d5..2a5b146fe 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -63,8 +63,7 @@ see the old wiki for a lot of historical detail. sbndaq detector components ---------------------------------------------- -* [List of boardreaders](boardreaders.md) -* [White Rabbit Timing System](WR/WhiteRabbit.md) +* [List of boardreaders](Boardreaders.md) * Configuring the [Multi Function Timing Unit (MFTU)](ACnet/MFTU.md) Beam Timing Interface Troubleshooting From ad5a57eb6e45e9d308f6e713087bb8f56b408fb9 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 8 Jun 2022 16:31:14 -0500 Subject: [PATCH 0163/1437] Update Boardreaders.md --- sbn_online_wiki/Boardreaders.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index a6d47ca4a..77fe8e0a4 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -9,6 +9,6 @@ | WR | | [White Rabbit Timing System](WR/WhiteRabbit.md) | | -List made as a result of a request made on Jun 6, 2022 on the Online Meeting. + - **lead developer** – refers to person familiar with the code, in particular the part responsible for communication with the hardware. - **documentation** – We yet need to define what should be included in the documentation, and what criteria it should fulfil to be called "complete" From eec9f6cae91c8fd3e22746c4d7c6b0c181230a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 10 Jun 2022 19:48:28 +0200 Subject: [PATCH 0164/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 1fa51e6c6..ae0e153bc 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_53_01` | Weekly release | [Release Notes](ReleaseNotes095301.html) |`v09_53_00_01` | Weekly release | [Release Notes](ReleaseNotes09530001.html) |`v09_52_01` | Weekly release | [Release Notes](ReleaseNotes095201.html) |`v09_52_00` | Weekly release | [Release Notes](ReleaseNotes095200.html) From f54304c4613ca998dfc5f008b73d803119a105c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 10 Jun 2022 20:21:49 +0200 Subject: [PATCH 0165/1437] Create ReleaseNotes095301.md --- sbndcode_wiki/Releases/ReleaseNotes095301.md | 59 ++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095301.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095301.md b/sbndcode_wiki/Releases/ReleaseNotes095301.md new file mode 100644 index 000000000..1db3327d4 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095301.md @@ -0,0 +1,59 @@ +--- +layout: page +title: ReleaseNotes095301 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.53.01 | 10 jun 2022 | [ReleaseNotes](ReleaseNotes095301.html) | +| --- | --- | --- | + + + +sbndcode v09_53_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_53_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_53_01/sbndcode-v09_53_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +- sbndcode PR 286: + - Modify reco fcls so there's an option for not using the OpT0Finder + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +- sbncode v09_53_01 +- larsoft v09_53_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-06-10 Fran Nicolas : Merge branch 'release/v09_53_01' +* 2022-06-10 Fran Nicolas : Update to v09_53_01 +* 2022-06-10 Francisco Javier Nicolás-Arnaldos : Update ci_tests.cfg +* 2022-06-10 Francisco Javier Nicolás-Arnaldos : Merge pull request #286 from ikatza/feature/icaza_no_fm_fcl +* 2022-06-10 Iker de Icaza Astiz : Move reco2 outside of physics block +* 2022-06-10 Iker de Icaza Astiz : Renaming missing include +* 2022-06-08 Iker de Icaza Astiz : Rename to no_opt0finder +* 2022-06-07 Iker de Icaza Astiz : Modify reco fcls so there's an option for not using the OpT0Finder +* 2022-06-03 Fran Nicolas : Merge tag 'v09_53_00_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-06-10 Fran Nicolas : Merge tag 'v09_53_01' into develop +* 2022-06-10 Fran Nicolas : Merge branch 'release/v09_53_01' +* 2022-06-10 Fran Nicolas : Update to v09_53_01 +* 2022-06-03 Fran Nicolas : Merge tag 'v09_53_00_01' into develop From 0d9ad0ec8658ec2c3d1ab7a3135c5160c37c0c0d Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 13 Jun 2022 11:39:59 -0500 Subject: [PATCH 0166/1437] Update Boardreaders.md Following discussion on the Online Meeting --- sbn_online_wiki/Boardreaders.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index 77fe8e0a4..708493f70 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -1,14 +1,15 @@ # List of BoardReaders -| Name | Lead developer(s) | Documentation | Documentation Complete | +| Name | Lead developers | Documentation | Documentation Complete | | ---- | -------------- | ------------- | ---------------------- | -| CRT | A.Aduszkiewicz | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | +| CRT | A.Aduszkiewicz, E.Yandel | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | | PMT | | | | | TPC | | | | -| trigger | | | | -| WR | | [White Rabbit Timing System](WR/WhiteRabbit.md) | | +| trigger | Jacob?, Wes?, D.Torretta | | | +| WR | D.Torretta, W.Badgett, G.Lukhanin | [White Rabbit Timing System](WR/WhiteRabbit.md) | | +To add: EventBuilder, DataLogger, Dispatcher, add section for SBND as needed? - **lead developer** – refers to person familiar with the code, in particular the part responsible for communication with the hardware. -- **documentation** – We yet need to define what should be included in the documentation, and what criteria it should fulfil to be called "complete" +- **documentation** – We yet need to define what should be included in the documentation, and what criteria it should fulfill to be called "complete" (85% qs can be answered) or "will be complete by" (configuration parameters, how they affect data taking, what typical parameters are), systematically go through each parameter of configuration, short explanation in fhicl file, long explanation in wiki page incl. why a selection was made From db17ed61da94a8e4c2b929d532c11e7b8aaed9ad Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 13 Jun 2022 11:56:55 -0500 Subject: [PATCH 0167/1437] Update Boardreaders.md --- sbn_online_wiki/Boardreaders.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index 708493f70..316bdf11e 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -5,7 +5,7 @@ | CRT | A.Aduszkiewicz, E.Yandel | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | | PMT | | | | | TPC | | | | -| trigger | Jacob?, Wes?, D.Torretta | | | +| trigger | J.Zettlemoyer, D.Torretta, W.Ketchum | | | | WR | D.Torretta, W.Badgett, G.Lukhanin | [White Rabbit Timing System](WR/WhiteRabbit.md) | | To add: EventBuilder, DataLogger, Dispatcher, add section for SBND as needed? From 44ec674e0fce50ffbc5eec5807d1617c40dcd069 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 13 Jun 2022 22:25:41 -0500 Subject: [PATCH 0168/1437] Update Boardreaders.md Clean up --- sbn_online_wiki/Boardreaders.md | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index 316bdf11e..b573fcf9c 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -1,15 +1,30 @@ -# List of BoardReaders +# List of DAQ components | Name | Lead developers | Documentation | Documentation Complete | | ---- | -------------- | ------------- | ---------------------- | | CRT | A.Aduszkiewicz, E.Yandel | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | | PMT | | | | | TPC | | | | -| trigger | J.Zettlemoyer, D.Torretta, W.Ketchum | | | +| ICARUS trigger | J.Zettlemoyer, D.Torretta, W.Ketchum | | | +| SBND trigger | | | | | WR | D.Torretta, W.Badgett, G.Lukhanin | [White Rabbit Timing System](WR/WhiteRabbit.md) | | +| | | | | +| EventBuilders | | | | +| Dispatchers | | | | -To add: EventBuilder, DataLogger, Dispatcher, add section for SBND as needed? +# Description of the columns +## Lead developers +Persons familiar with the code, in particular the part responsible for communication with the hardware. -- **lead developer** – refers to person familiar with the code, in particular the part responsible for communication with the hardware. -- **documentation** – We yet need to define what should be included in the documentation, and what criteria it should fulfill to be called "complete" (85% qs can be answered) or "will be complete by" (configuration parameters, how they affect data taking, what typical parameters are), systematically go through each parameter of configuration, short explanation in fhicl file, long explanation in wiki page incl. why a selection was made +## Documentation +The documentation should include: +- overview of the communication with hardware, +- description of FHiCL parameters. The FHiCL files include 1-line documentation for each parameters, but this is often insufficient. Here we can expand it with necessary details, including information why certain parameters were chosen. + +## ICARUS and SBND documentation +In many cases ICARUS and SBND documentation is mostely identical, and it's easier to maintain one version of documentation, with a separate section explaining the differences between the two experiments. + + +## Documentation complete +Realistically the documentation is considered complete if it can help to answer most of the questions that may arise about functioning of the boardreader. From 4ad15ae69aa8afeac1f8a9094d6eb9a98a73ffb2 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Fri, 17 Jun 2022 18:30:22 +0200 Subject: [PATCH 0169/1437] Update ICARUS Keepup Processing.md --- sbn/sbnprod_wiki/ICARUS Keepup Processing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/ICARUS Keepup Processing.md b/sbn/sbnprod_wiki/ICARUS Keepup Processing.md index 9d515defd..4ebd918c5 100644 --- a/sbn/sbnprod_wiki/ICARUS Keepup Processing.md +++ b/sbn/sbnprod_wiki/ICARUS Keepup Processing.md @@ -22,4 +22,4 @@ Production uses the `data_stream`, `run_number`, and `data_tier` to construct di Currently we are using 1 standard fcl file in the stage 0 reconstruction `stage0_multiTPC_splitstream_nofilter_icarus.fcl` -Meanwhile, there will be 2 different fcl files used in the stage 1 reconstruction depending on the beam spill or trigger type. We are running the `stage1_multiTPC_nofilter_icarus_gauss` for the BNB trigger/beam spill stage 0 files and `` for the NuMI trigger/beam spill stage 0 files. +Meanwhile, there will be 2 different fcl files used in the stage 1 reconstruction depending on the beam spill or trigger type. We are running the `stage1_multiTPC_nofilter_icarus_gauss.fcl` for the BNB trigger/beam spill stage 0 files and `stage1_multiTPC_nofilter_icarus_gauss_numi.fcl` for the NuMI trigger/beam spill stage 0 files. From 1ae42a05596328eeeb9e7cf7d4536d71baf831f6 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Fri, 17 Jun 2022 18:37:59 +0200 Subject: [PATCH 0170/1437] Update keep workflow --- AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md index 5ccd85912..061d714f4 100644 --- a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md +++ b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md @@ -1,8 +1,9 @@ # ICARUS Standard Workflows
Data keep up processing -stage0_multiTPC_icarus.fcl
-stage1_multiTPC_icarus_gauss.fcl
+stage0_multiTPC_splitstream_nofilter_icarus.fcl
+stage1_multiTPC_nofilter_icarus_gauss.fcl (BNB time window)
+stage1_multiTPC_nofilter_icarus_gauss_numi.fcl (NUMI time window)
MC 2020 From 7e4497d0b33b407908ba2a4da381656e30673b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 17 Jun 2022 20:00:57 +0200 Subject: [PATCH 0171/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index ae0e153bc..a2205ad46 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_53_02` | Weekly release | [Release Notes](ReleaseNotes095302.html) |`v09_53_01` | Weekly release | [Release Notes](ReleaseNotes095301.html) |`v09_53_00_01` | Weekly release | [Release Notes](ReleaseNotes09530001.html) |`v09_52_01` | Weekly release | [Release Notes](ReleaseNotes095201.html) From 3e860470ad99d3b8c736c05536e1cd9fc08d971b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 17 Jun 2022 20:01:33 +0200 Subject: [PATCH 0172/1437] Create ReleaseNotes095302.md --- sbndcode_wiki/Releases/ReleaseNotes095302.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095302.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095302.md b/sbndcode_wiki/Releases/ReleaseNotes095302.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095302.md @@ -0,0 +1 @@ + From ed78cca6cd6ec80c6388ee1998122e69f6edd273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 17 Jun 2022 20:40:01 +0200 Subject: [PATCH 0173/1437] Update ReleaseNotes095302.md --- sbndcode_wiki/Releases/ReleaseNotes095302.md | 61 ++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/sbndcode_wiki/Releases/ReleaseNotes095302.md b/sbndcode_wiki/Releases/ReleaseNotes095302.md index 8b1378917..4624abe1a 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes095302.md +++ b/sbndcode_wiki/Releases/ReleaseNotes095302.md @@ -1 +1,62 @@ +--- +layout: page +title: ReleaseNotes095302 +toc: true +--- +----------------------------------------------------------------------------- +| v09.53.02 | 17 jun 2022 | [ReleaseNotes](ReleaseNotes095302.html) | +| --- | --- | --- | + + + +sbndcode v09_53_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_53_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_53_02/sbndcode-v09_53_02.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR288 + * CRT Hit Timings: + * Corrects the propagation speed value (currently simulating 10x the speed it should) + * Adds a correction method to the CRT Hit Reconstruction to account for these two effects using reconstruction information. + * The relevant fcl parameters are all inherited directly from the ones used in detsim. + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_53_02 +* larsoft v09_53_02 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-06-17 Fran Nicolas : Merge branch 'release/v09_53_02' +* 2022-06-17 Fran Nicolas : Update to v09_53_02 +* 2022-06-17 Francisco Javier Nicolás-Arnaldos : Merge pull request #288 from SBNSoftware/feature/hlay_crt_hit_timings +* 2022-06-15 Henry Lay : Sort indentation +* 2022-06-14 Henry Lay : Add reco correction for time walk effect +* 2022-06-13 Henry Lay : Move std::cout to LogInfo +* 2022-06-13 Henry Lay : Add reconstruction stage correction for propagation delay +* 2022-06-13 Henry Lay : Correct propagation delay value +* 2022-06-10 Fran Nicolas : Merge tag 'v09_53_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-06-17 Fran Nicolas : Merge tag 'v09_53_02' into develop +* 2022-06-17 Fran Nicolas : Merge branch 'release/v09_53_02' +* 2022-06-17 Fran Nicolas : Update to v09_53_02 +* 2022-06-10 Fran Nicolas : Merge tag 'v09_53_01' into develop From 43b50a8a030b09cea13c6adc880e8eae3b626e0e Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 20 Jun 2022 13:13:55 +0100 Subject: [PATCH 0174/1437] update SBN2022A dates --- AnalysisInfrastructure/ReleaseManagement/prod_gloss.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md index daac545f6..004e20f4c 100644 --- a/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md +++ b/AnalysisInfrastructure/ReleaseManagement/prod_gloss.md @@ -3,7 +3,7 @@ [List of available samples](https://sbnsoftware.github.io/sbn/sbnprod_wiki/sample) -## Production SBN 2022A (pending) +## Production SBN 2022A (May, 2022) ### Final production campaign to be launched for 2022 conference season; support ICARUS first neutrino data and ICARUS+SBND simulation, and SBND commissioning samples From 239237997339ccd77fd952ca6718e4760ae36626 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 20 Jun 2022 13:41:33 +0100 Subject: [PATCH 0175/1437] Create sbncode_sbnana_v09_46_00.md --- .../Releases/sbncode_sbnana_v09_46_00.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md new file mode 100644 index 000000000..143fc4a2d --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md @@ -0,0 +1,43 @@ +--- +layout: page +title: sbncode_v09_46_00 +toc: true +--- + +sbncode_v09_46_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +21 March 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_46_00) has been cut and distributed. + +* sbncode (v09_46_00): + + Using: + * larsoft v09_46_00 + * sbnobj v09_13_08 + * sbnanaobj v09_17_13 + + Includes: + * SBNSoftware/sbncode Port file_size_ana from NOvA #248 + * SBNSoftware/sbnobj Feature/lynnt_pmt_softtrig #48 + * SBNSoftware/sbnanaobj Clean up sbnanaobj headers #48 + +* sbnana (v09_46_00): + Includes: + * SBNSoftware/sbnana feature/bckhouse_xsec_flux #62 + +Extra info +--------------------------------------------------- From ae7e40fc6a46b48e9be3647f269f7e55d751be70 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 20 Jun 2022 13:50:28 +0100 Subject: [PATCH 0176/1437] Update sbncode_sbnana_v09_46_00.md --- .../ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md index 143fc4a2d..9ac63a8a2 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00.md @@ -1,10 +1,10 @@ --- layout: page -title: sbncode_v09_46_00 +title: sbncode_sbnana_v09_46_00 toc: true --- -sbncode_v09_46_00 Release Notes +sbncode_sbnana_v09_46_00 Release Notes ======================================================================================= [List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) From f7d7588eed791335d57c1c0761e0a79db7f15428 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 20 Jun 2022 14:12:20 +0100 Subject: [PATCH 0177/1437] Create sbncode_sbnana_v09_47_00.md --- .../Releases/sbncode_sbnana_v09_47_00.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_47_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_47_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_47_00.md new file mode 100644 index 000000000..5e14f757f --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_47_00.md @@ -0,0 +1,41 @@ +--- +layout: page +title: sbncode_v09_47_00 +toc: true +--- + +sbncode_sbnana_v09_47_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +06 April 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_47_00) has been cut and distributed. + +* sbncode (v09_47_00): + Using: + * larsoft v09_47_00 + * sbnobj v09_13_09 + * sbnanaobj v09_18_00 + + Includes: + * SBNSoftware/sbnanaobj Update to sproxy v00.34 #56 + +* sbnana (v09_47_00): + Using: + * sbnanaobj v09_18_00 + + +Extra info +--------------------------------------------------- From e60eddc104cc21562c27857308f8aeeec20cb047 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Mon, 27 Jun 2022 11:35:40 -0500 Subject: [PATCH 0178/1437] Update sbndaq_Wiki.md --- sbn_online_wiki/sbndaq_Wiki.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 2a5b146fe..939e04a20 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -22,7 +22,7 @@ Configuration DB Instructions * [See here for instructions on working with the configuration database](ConfigDB) * [See here for instructions on migrating configurations in the configurations database](MigrateConfigs) * [See here for instructions for restarting MongoDB](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/Mongodb_Instructions) -* [See here for instructions for restoring MongoDB](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/RestoreMongoDB) +* [See here for instructions for restoring MongoDB](https://github.com/SBNSoftware/artdaqdatabase) Copy ```run history``` from /daq/run_records into ArtdaqDB, and into UconDB ---------------------------------------------- From f03ac28ed00408cc91df789e01079c7d2b411a73 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 28 Jun 2022 09:14:31 +0200 Subject: [PATCH 0179/1437] add a section for inserting new panel in Grafana add a section to explain how to insert new panel in Grafana page --- sbn_online_wiki/sbndaq_Wiki.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 939e04a20..61046f3fb 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -36,6 +36,7 @@ Grafana monitoring Instructions * [Restart Grafana](RestartGrafana) * [Configure runrecords_monitor.sh](RunRecordsMonitor) * [Configure disk_monitor.shh](DiskMonitor) +* [Add a monitoring panel in Grafana](MonitorPanel) Release Instructions From 6aa7486ba8a9d621ea7bc0a88aafc5db25aa53f4 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 28 Jun 2022 09:36:14 +0200 Subject: [PATCH 0180/1437] MonitorPanel.md to explain added to wiki a file MonitorPanel.md to explain the procedure was added --- sbn_online_wiki/MonitorPanel.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbn_online_wiki/MonitorPanel.md diff --git a/sbn_online_wiki/MonitorPanel.md b/sbn_online_wiki/MonitorPanel.md new file mode 100644 index 000000000..0bce0396e --- /dev/null +++ b/sbn_online_wiki/MonitorPanel.md @@ -0,0 +1 @@ +If the metric you want to display on Grafana is already monitored by a script running on evb machines then you only need to add a new panel on Grafana. From 372d994128af7bcce3b441e3fbdbb8e043717d8c Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 28 Jun 2022 10:46:40 +0200 Subject: [PATCH 0181/1437] test to update MonitorPanel.md --- sbn_online_wiki/MonitorPanel.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbn_online_wiki/MonitorPanel.md b/sbn_online_wiki/MonitorPanel.md index 0bce0396e..1670878cc 100644 --- a/sbn_online_wiki/MonitorPanel.md +++ b/sbn_online_wiki/MonitorPanel.md @@ -1 +1,6 @@ If the metric you want to display on Grafana is already monitored by a script running on evb machines then you only need to add a new panel on Grafana. +- Go to “Shifter DAQ Status” page +- Click on “Add Panel” on the top right of the page: + +![immagine](https://user-images.githubusercontent.com/97683442/176135913-9adc14ba-2d0a-4325-b1a8-10f65c893ac6.png) + From c59f4621b76a9d68d8a65beb755c6e240d420ff3 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 28 Jun 2022 10:49:48 +0200 Subject: [PATCH 0182/1437] Update MonitorPanel.md --- sbn_online_wiki/MonitorPanel.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/sbn_online_wiki/MonitorPanel.md b/sbn_online_wiki/MonitorPanel.md index 1670878cc..20fbd5331 100644 --- a/sbn_online_wiki/MonitorPanel.md +++ b/sbn_online_wiki/MonitorPanel.md @@ -2,5 +2,29 @@ If the metric you want to display on Grafana is already monitored by a script ru - Go to “Shifter DAQ Status” page - Click on “Add Panel” on the top right of the page: + ![immagine](https://user-images.githubusercontent.com/97683442/176135913-9adc14ba-2d0a-4325-b1a8-10f65c893ac6.png) +- Click on “Add an empty panel” + +![immagine](https://user-images.githubusercontent.com/97683442/176136223-c6db09c8-6f74-43b4-9764-4251ec995872.png) + +- Modify the title and add a description in “Panel options” on the right +- Go to select metric and select: +o Icarus +o The machine or the component you want to monitor +o The partition you want to monitor +o The metric you are interested to monitor +- Click on “Time series” on the the top right part of the page and select the type of visualization you want to use for the monitoring (Graph, Gauge, Table etc) + +![immagine](https://user-images.githubusercontent.com/97683442/176136353-2e4a4b4c-942d-4476-b723-a84970614182.png) + +- Scroll down in the right part of the page and change properly the Units + +![immagine](https://user-images.githubusercontent.com/97683442/176136441-56537b4d-7dff-4ce9-a74d-993a6cf36ba5.png) + +- Scroll down in the right part to set the threshold, the threshold vale and the color to apply, you can click on “add threshold” to add a new threshold + +![immagine](https://user-images.githubusercontent.com/97683442/176136538-78b4804e-e4a8-419d-9688-850f51005bd7.png) + +Click on the top right blue button “Apply” and then “Save” to save your changes. From 8d2e91774c0a81f78338505c2c956613da316135 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 28 Jun 2022 10:56:06 +0200 Subject: [PATCH 0183/1437] Update MonitorPanel.md --- sbn_online_wiki/MonitorPanel.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sbn_online_wiki/MonitorPanel.md b/sbn_online_wiki/MonitorPanel.md index 20fbd5331..0cb1bf3ce 100644 --- a/sbn_online_wiki/MonitorPanel.md +++ b/sbn_online_wiki/MonitorPanel.md @@ -11,10 +11,10 @@ If the metric you want to display on Grafana is already monitored by a script ru - Modify the title and add a description in “Panel options” on the right - Go to select metric and select: -o Icarus -o The machine or the component you want to monitor -o The partition you want to monitor -o The metric you are interested to monitor + - Icarus + - The machine or the component you want to monitor + - the partition you want to monitor + - the metric you are interested to monitor - Click on “Time series” on the the top right part of the page and select the type of visualization you want to use for the monitoring (Graph, Gauge, Table etc) ![immagine](https://user-images.githubusercontent.com/97683442/176136353-2e4a4b4c-942d-4476-b723-a84970614182.png) From 94f5de1deacd142f93211ad4b142a36bfa33d54e Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 28 Jun 2022 10:57:21 +0200 Subject: [PATCH 0184/1437] Update MonitorPanel.md --- sbn_online_wiki/MonitorPanel.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/MonitorPanel.md b/sbn_online_wiki/MonitorPanel.md index 0cb1bf3ce..b66e3a2c0 100644 --- a/sbn_online_wiki/MonitorPanel.md +++ b/sbn_online_wiki/MonitorPanel.md @@ -1,4 +1,5 @@ If the metric you want to display on Grafana is already monitored by a script running on evb machines then you only need to add a new panel on Grafana. +- Login to Grafana as “admin” user (ask to Gennadiy for the password) - Go to “Shifter DAQ Status” page - Click on “Add Panel” on the top right of the page: From fe81696c214371e0abf6d3006fb07fe52bdf2df2 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 28 Jun 2022 11:47:22 +0200 Subject: [PATCH 0185/1437] Update MonitorPanel.md --- sbn_online_wiki/MonitorPanel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/MonitorPanel.md b/sbn_online_wiki/MonitorPanel.md index b66e3a2c0..4f3c93119 100644 --- a/sbn_online_wiki/MonitorPanel.md +++ b/sbn_online_wiki/MonitorPanel.md @@ -1,5 +1,5 @@ If the metric you want to display on Grafana is already monitored by a script running on evb machines then you only need to add a new panel on Grafana. -- Login to Grafana as “admin” user (ask to Gennadiy for the password) +- Login to Grafana as “admin” user (ask to Gennadiy Lukhanin for the password) - Go to “Shifter DAQ Status” page - Click on “Add Panel” on the top right of the page: From 8f36a0626d6b6503a80aca0872f67573a9f33263 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 28 Jun 2022 09:31:10 -0500 Subject: [PATCH 0186/1437] Update Boardreaders.md --- sbn_online_wiki/Boardreaders.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index b573fcf9c..68c296e52 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -3,7 +3,7 @@ | Name | Lead developers | Documentation | Documentation Complete | | ---- | -------------- | ------------- | ---------------------- | | CRT | A.Aduszkiewicz, E.Yandel | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | -| PMT | | | | +| PMT | A.Scarpelli | | | | TPC | | | | | ICARUS trigger | J.Zettlemoyer, D.Torretta, W.Ketchum | | | | SBND trigger | | | | From b96a47b754a4dbdbe40362bf5aa8b7004b49c5c7 Mon Sep 17 00:00:00 2001 From: eyandel Date: Wed, 29 Jun 2022 16:57:43 -0500 Subject: [PATCH 0187/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index e7ad76b51..989f5bf61 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -47,7 +47,7 @@ open two terminal windows. For each - login as sbnd on sbnd-gateway01.fnal.gov - ssh to sbnd-evb04 - (optional: start a tmux session) - - source "mstancar_launchdaq.sh" + - source "crt_launchdaq.sh" In one window, type "DAQInterface" From d6b4b1534d954f7f71e47dceebd2713d7a9fa79c Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 29 Jun 2022 21:20:26 -0700 Subject: [PATCH 0188/1437] Added icarus_v4 geometry --- icaruscode_wiki/Detector_geometry.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index 6d523990a..4f8b89bd9 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -22,10 +22,9 @@ different from the one configured in the current job (override with `services.Geometry.SkipConfigurationCheck: true`). -| version | introduced | default | file path | based on | description -| ------------ | ----------- | ----------- | --------------------------------------------------------------------------- | ----------- | ------------ -| | _not yet_ | | `icarusalg/Geometry/gdml/icarus_complete_20220518_overburden.gdml` | `20210527` | closer cryostats, added building and CRT details; with concrete overburden -| | _not yet_ | | `icarusalg/Geometry/gdml/icarus_complete_20220518_no_overburden.gdml` | `20210527` | closer cryostats, added building and CRT details; with no concrete overburden +| version | introduced | default | file path | based on | description +| ------------ | --------------------------- | ----------- | --------------------------------------------------------------------------- | ----------- | ------------ +| `icarus_v4` | `v09_53_02`, `v09_37_02_09` | `v09_53_02` | `icarusalg/Geometry/gdml/icarus_complete_20220518_overburden.gdml` | `icarus_v3` | updated CRT module positions | `icarus_v3` | `v09_25_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210527_overburden.gdml` | `icarus_v2` | closer cryostats, added building details; with concrete overburden | `icarus_v3` | `v09_25_00` | `v09_25_00` | `icarusalg/Geometry/gdml/icarus_complete_20210527_no_overburden.gdml` | `icarus_v2` | closer cryostats, added building details; with no concrete overburden | `icarus_v2`* | `v09_18_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210311_rotUV.gdml` | `20201107` | fixed orientation of wires, with concrete overburden @@ -39,6 +38,7 @@ different from the one configured in the current job > > _*_ _*_ _The detector name configured for these geometry descriptions is `icarus_splitwires`._ +> _Note_: since `icarus_v4` geometry, no-overburden geometry is not provided any more. ### Older versions @@ -135,6 +135,7 @@ Versions are listed and explained in the [paragraph above](#geometry-description | applies to samples with | availability | configuration bundle name | notes | | ----------------------- | ------------ | ----------------------------------------------------------------- | -------------------------------------- | +| `icarus_v3` | `v09_53_02` | `icarus_geometry_services_legacy_icarus_v3` | standard configuration (no overburden) | | `icarus_v2` | `v09_25_00` | `icarus_geometry_services_legacy_icarus_v2` | standard configuration (no overburden) | | | | `icarus_geometry_services_no_overburden_legacy_icarus_v2` | no overburden (same as standard) | | | | `icarus_geometry_services_overburden_legacy_icarus_v2` | with 3-m concrete overburden | From 1e86ad795c9714d5060da72c392dfddbac6beab0 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 29 Jun 2022 21:24:17 -0700 Subject: [PATCH 0189/1437] Update Detector_geometry.md --- icaruscode_wiki/Detector_geometry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index 4f8b89bd9..239ff8c3b 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -9,7 +9,7 @@ toc: true Geometry description versions ------------------------------ -**Breaking changes in geometry: `v09_18_00`, `v08_57_00`.** +**Breaking changes in geometry: `v09_53_02`, `v09_25_00`, `v09_18_00`, `v08_57_00`.** Detector geometry description is currently stored in GDML format as a From 83a33e9236c4a88babd003627a62b87a279c3a6b Mon Sep 17 00:00:00 2001 From: eyandel Date: Thu, 30 Jun 2022 11:47:21 -0500 Subject: [PATCH 0190/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 989f5bf61..3da3b6076 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -44,17 +44,19 @@ CRT T1 reset: BES from AD's fiber to TTL converter ----------------------------- open two terminal windows. For each - - login as sbnd on sbnd-gateway01.fnal.gov - - ssh to sbnd-evb04 - - (optional: start a tmux session) + - ssh to sbnd-gateway01.fnal.gov + - from gateway ssh to sbnd-evb04 (as sbnd) + - (optional: start a tmux or screen session) - source "crt_launchdaq.sh" - In one window, type "DAQInterface" + In one window, type "DAQInterface" or "DAQInterface &" + +(NOTE: You can not close the terminal, disconnect it from the internet, close your laptop, etc. when the DAQInterface is open in your terminal or the DAQ will disconnect. Additionally, when running the DAQ, a Message Viewer window opens from this terminal. Running in a screen or tmux session on evb04 allows to disconnect from the screen/tmux session without crashing the DAQ. The Message Viewer will remain visible until you exit the evb04 ssh session or close the window. There is no way to reopen it again without starting a new run. Using a VNC (instructions to come) can help get around this issue.) In the other window, (1) look at the file "run" and find the line with setdaqcomps.sh You will find a list of things that will be included in the DAQ run, add or delete what you (don't) need. - - pmtx02 is the 1730 digitizer connected to link 1, in the Xarapuca crate on the right + - pmtx03 is the 1730 digitizer connected to pds03 link 1, in the Xarapuca crate on the left - crt2x2upstr is just what it sounds like - all 4 modules on the upstream (south) frame - crt2x2dwnstr is just what it sounds like - all 4 modules on the downstream (north) frame - crt_test is the test setup on the A-frame @@ -65,10 +67,10 @@ open two terminal windows. For each Type ./run to start the run and type ./stop to stop the run - The data will magically appear in /daq/scratch/data/. It is suggested to make a directory for your data here and move it there at the end of the day each day. + The data will magically appear in /daq/scratch/crtdata/. It is suggested to make a directory for your data here and move it there at the end of the day each day. (3) setup - specified in knownboardreaders.txt - pmtx02 boardreader is on sbnd-pds03 + pmtx03 boardreader is on sbnd-pds03 crt board readers are on sbnd-pds05 WR board reader is on sbnd-clk01 PTB board reader is on sbnd-ptb01 From 6286f4ebbbc5774718ebc4c272d7ab433042dac0 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 30 Jun 2022 11:15:10 -0700 Subject: [PATCH 0191/1437] Updated legacy geometry information --- icaruscode_wiki/Detector_geometry.md | 96 ++++++++++------------------ 1 file changed, 32 insertions(+), 64 deletions(-) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index 239ff8c3b..bad769d8f 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -148,14 +148,22 @@ Remember that legacy configurations may be retired after a while. In such cases, reverting to a previous `icaruscode` version is the only way to properly process the legacy samples. +There may also be drop-in configuration files setting up a legacy geometry (and possibly other settings proper for their legacy context). +Instructions to use them are provided in the [following section](#drop-in-configurations). The available drop-in configurations for legacy geometries are: -### `icaruscode` versions `v08_52_00` and later: +name | introduced | removed | description +------------------------------------------------- | ----------- | ----------- | ---------------------------------------------------------------------- +`services_compat_icarus_v3.fcl` | `v09_53_02` | | `icarus_v3` default geometry (i.e. no overburden) + + + +### Drop-in configurations Geometry can be selected by including one of the predefined configurations defined in [`icarusalg/Geometry/geometry_icarus.fcl`](https://github.com/SBNSoftware/icarusalg/blob/develop/icarusalg/Geometry/geometry_icarus.fcl), which also has documentation on how to do that. -For some selected geometry configurations, drop-in FHiCL files are +For some selected geometry configurations, drop-in FHiCL files are also available which change the geometry of a job configuration into a different one. For example, say you need to run a cosmic ray generation job as defined @@ -173,72 +181,24 @@ where we have used the drop-in configuration _[note that there is a `prodcorsika_overburden_icarus.fcl` for this specific example...]_ -The available drop in configurations are: - -name | introduced | description | defaults: `v08_52_00` -------------------------------------------------- | ----------- | ---------------------------------------------------------------------- | ---------------- -`use_overburden_geometry_icarus.fcl` | `v08_52_00` | default geometry with the addition of concrete overburden | _9-m first induction plane wires_ -`use_nooverburden_geometry_icarus.fcl` | `v08_52_00` | default geometry but without the concrete overburden | _9-m first induction plane wires_ -`use_singlewire_geometry_icarus.fcl` | `v08_52_00` | 18-m first induction plane wires geometry with default overburden | _no overburden_ _(see note below)_ -`use_singlewire_nooverburden_geometry_icarus.fcl` | `v08_52_00` | 18-m first induction plane wires without the concrete overburden | _(see note below)_ -`use_singlewire_overburden_geometry_icarus.fcl` | `v08_52_00` | 18-m first induction plane wires geometry with the concrete overburden | _(see note below)_ -`use_splitwire_geometry_icarus.fcl` | `v08_52_00` | 9-m first induction plane wires geometry with default overburden | _no overburden_ -`use_splitwire_nooverburden_geometry_icarus.fcl` | `v08_52_00` | 9-m first induction plane wires without the concrete overburden -`use_splitwire_overburden_geometry_icarus.fcl` | `v08_52_00` | 9-m first induction plane wires geometry with the concrete overburden - -> **Note: breaking change with respect to `v08_50_02` and earlier**: -> the configurations `use_overburden_geometry_icarus.fcl` and -> `use_nooverburden_geometry_icarus.fcl` used to directly select a -> specific geometry. Now they rely on what is defined as "default" -> geometry in [`icarusalg/Geometry/geometry_icarus.fcl`](https://github.com/SBNSoftware/icarusalg/blob/develop/icarusalg/Geometry/geometry_icarus.fcl) -> for their respective categories (for example, in `v08_52_00` -> both geometries default to the split 9-m long wire versions). - -> **Note**: PMT channel mapping is also different in the two geometry types: -> if photon visibility is needed (`PhotonVisibilityService`) -> and a old photon library (like the one from August 2018) is being used, -> it needs a specific configuration; this is for _the_ August 2018 photon library: -> -> PhotonVisibilityService: @local::icarus_legacy_photonvisibilityservice_v08_50_00 -> -> A complete service configuration for that purpose is also provided -> (**as-is**!) as `icarus_legacy_services_v08_50_00` in -> [`fcl/services/services_icarus_simulation.fcl`](https://github.com/SBNSoftware/icaruscode/blob/develop/fcl/services/services_icarus_simulation.fcl), -> that can be used as -> -> services: @local::icarus_legacy_services_v08_50_00 -> -> and pulls in most ICARUS simulation services, but still requires careful check. - -> **Note** (yet another): detector geometry description files have been moved +The available drop-in configurations for geometry options are: + +name | introduced | removed | description | defaults: `v08_52_00` +------------------------------------------------- | ----------- | ----------- | ---------------------------------------------------------------------- | ---------------- +`use_overburden_geometry_icarus.fcl` | `v08_52_00` | `v09_53_02` | default geometry with the addition of concrete overburden | _9-m first induction plane wires_ +`use_nooverburden_geometry_icarus.fcl` | `v08_52_00` | `v09_53_02` | default geometry but without the concrete overburden | _9-m first induction plane wires_ +`use_singlewire_geometry_icarus.fcl` | `v08_52_00` | `v09_32_01` | 18-m first induction plane wires geometry with default overburden | _no overburden_ +`use_singlewire_nooverburden_geometry_icarus.fcl` | | | 18-m first induction plane wires without the concrete overburden +`use_singlewire_overburden_geometry_icarus.fcl` | | | 18-m first induction plane wires geometry with the concrete overburden +`use_splitwire_geometry_icarus.fcl` | `v08_52_00` | `v09_53_02` | 9-m first induction plane wires geometry with default overburden | _no overburden_ +`use_splitwire_nooverburden_geometry_icarus.fcl` | | | 9-m first induction plane wires without the concrete overburden +`use_splitwire_overburden_geometry_icarus.fcl` | | | 9-m first induction plane wires geometry with the concrete overburden + +> **Note**: detector geometry description files have been moved > from [`icaruscode`](https://github.com/SBNSoftware/icaruscode/blob/develop/icaruscode/Geometry/gdml) > into [`icarusalg`](https://github.com/SBNSoftware/icarusalg/blob/develop/icarusalg/Geometry/gdml) > starting with ICARUS software release `v09_06_00` (October 2020). - -### `icaruscode` versions `v08_51_00` and earlier - -Geometry can be selected by including one of the predefined -configurations defined in -[icaruscode/Geometry/geometry_icarus.fcl](https://github.com/SBNSoftware/icarusalg/blob/develop/icarusalg/Geometry/geometry_icarus.fcl), -which also has documentation on how to do that. -The procedures are the same as documented for the newer versions. -The drop-in configurations also work as above, but with two relevant -differences. -First, fewer configurations are available here, changing only the -overburden setting. -Second, each of the drop in configurations explicitly selects a specific -geometry (namely, the one with single 18-m long wires on the first -induction plane). - -The available drop in configurations are: - -name | introduced | description --------------------------------------- | ----------- | --------------------------------------------------------------------- -`use_overburden_geometry_icarus.fcl` | `v08_44_00` | 18-m first induction plane wires geometry with concrete overburden -`use_nooverburden_geometry_icarus.fcl` | `v08_44_00` | 18-m first induction plane wires geometry without concrete overburden - - ### Geometry compatibility checks With LArSoft `v09_12_00`, `Geometry` service will perform a consistency check @@ -376,3 +336,11 @@ Roughly, the BNB target is about 600 m upstream of the detector, i.e. at `( 0, 0 ICARUS position w.r.t. NuMI coordinates is described in [SBN DocDB 22998](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=22998) (August 2021). Detector position for MC was updated in the [`icaruscode` pull request #230](https://github.com/SBNSoftware/icaruscode/pull/230)/ + +## Information phased out of this wiki + +The following information has been removed from this page; look for it in GIT history if needed. + +* [`icaruscode` versions `v08_51_00` and earlier](https://github.com/SBNSoftware/SBNSoftware.github.io/blob/83a33e9236c4a88babd003627a62b87a279c3a6b/icaruscode_wiki/Detector_geometry.md) + + From e7241e3c3caf243d65e5eeb8886f62351b70b19a Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 30 Jun 2022 11:27:22 -0700 Subject: [PATCH 0192/1437] Update Detector_geometry.md --- icaruscode_wiki/Detector_geometry.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index bad769d8f..3c83755f8 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -25,14 +25,14 @@ different from the one configured in the current job | version | introduced | default | file path | based on | description | ------------ | --------------------------- | ----------- | --------------------------------------------------------------------------- | ----------- | ------------ | `icarus_v4` | `v09_53_02`, `v09_37_02_09` | `v09_53_02` | `icarusalg/Geometry/gdml/icarus_complete_20220518_overburden.gdml` | `icarus_v3` | updated CRT module positions -| `icarus_v3` | `v09_25_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210527_overburden.gdml` | `icarus_v2` | closer cryostats, added building details; with concrete overburden -| `icarus_v3` | `v09_25_00` | `v09_25_00` | `icarusalg/Geometry/gdml/icarus_complete_20210527_no_overburden.gdml` | `icarus_v2` | closer cryostats, added building details; with no concrete overburden -| `icarus_v2`* | `v09_18_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210311_rotUV.gdml` | `20201107` | fixed orientation of wires, with concrete overburden -| `icarus_v2`* | `v09_18_00` | `v09_18_00` | `icarusalg/Geometry/gdml/icarus_complete_20210311_no_overburden_rotUV.gdml` | `20201107` | fixed orientation of wires, with no concrete overburden -| `20201107`** | `v09_09_01` | | `icarusalg/Geometry/gdml/icarus_complete_20201107.gdml` | `20200709` | more realistic description of walls, updates to PMT materials, with concrete overburden -| `20201107`** | `v09_09_01` | `v09_10_01` | `icarusalg/Geometry/gdml/icarus_complete_20201107_no_overburden.gdml` | `20200709` | more realistic description of walls, updates to PMT materials, with no concrete overburden -| `20200709`** | `v08_57_00` | | `icarusalg/Geometry/gdml/icarus_complete_20200709.gdml` | `20200307` | fixed overlaps, with concrete overburden -| `20200709`** | `v08_57_00` | `v08_57_00` | `icarusalg/Geometry/gdml/icarus_complete_20200709_no_overburden.gdml` | `20200307` | fixed overlaps, with no concrete overburden +| `icarus_v3` | `v09_25_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210527_overburden.gdml` | `icarus_v2` | closer cryostats, added building details; with concrete overburden +| `icarus_v3` | `v09_25_00` | `v09_25_00` | `icarusalg/Geometry/gdml/icarus_complete_20210527_no_overburden.gdml` | `icarus_v2` | closer cryostats, added building details; with no concrete overburden +| `icarus_v2`* | `v09_18_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210311_rotUV.gdml` | `20201107` | fixed orientation of wires, with concrete overburden +| `icarus_v2`* | `v09_18_00` | `v09_18_00` | `icarusalg/Geometry/gdml/icarus_complete_20210311_no_overburden_rotUV.gdml` | `20201107` | fixed orientation of wires, with no concrete overburden +| `20201107`** | `v09_09_01` | | `icarusalg/Geometry/gdml/icarus_complete_20201107.gdml` | `20200709` | more realistic description of walls, updates to PMT materials, with concrete overburden +| `20201107`** | `v09_09_01` | `v09_10_01` | `icarusalg/Geometry/gdml/icarus_complete_20201107_no_overburden.gdml` | `20200709` | more realistic description of walls, updates to PMT materials, with no concrete overburden +| `20200709`** | `v08_57_00` | | `icarusalg/Geometry/gdml/icarus_complete_20200709.gdml` | `20200307` | fixed overlaps, with concrete overburden +| `20200709`** | `v08_57_00` | `v08_57_00` | `icarusalg/Geometry/gdml/icarus_complete_20200709_no_overburden.gdml` | `20200307` | fixed overlaps, with no concrete overburden > _*_ _Versions `v09_18_00` to `v09_19_00_01` erroneously still report this geometry as `icarus_splitwires`. To process files generated with those versions, `services.Geometry.Name: icarus_splitwires` must be specified in the job configuration_ > @@ -40,12 +40,12 @@ different from the one configured in the current job > _Note_: since `icarus_v4` geometry, no-overburden geometry is not provided any more. -### Older versions +### Unsupported versions + +The following older geometry versions have been dropped from our codebase, and the only way to use them is to retrieve a version of `icaruscode` where they were still supported (either as main or as legacy options). | name | version | introduced | default | removed | file path | description | ---------- | ----------- | ----------- | ----------- | ----------- | --------------------------------------------------------------------- | ------------------------------ -| `20210527` | `icarus_v3` | `v09_25_00` | | | `icarusalg/Geometry/gdml/icarus_complete_20210527_overburden.gdml` | closer cryostats, added building details; with concrete overburden -| `20210527` | `icarus_v3` | `v09_25_00` | `v09_25_00` | | `icarusalg/Geometry/gdml/icarus_complete_20210527_no_overburden.gdml` | closer cryostats, added building details; with no concrete overburden | `20200307` | `20200307` | `v08_45_00` | `v08_50_02` | `v08_57_00` | `icaruscode/Geometry/gdml/icarus_complete_no_overburden.gdml` | complete geometry, first induction plane wires 9 m, with no concrete overburden | `20200307` | `20200307` | `v08_44_00` | | `v08_57_00` | `icaruscode/Geometry/gdml/icarus_complete.gdml` | complete geometry, first induction plane wires 9 m, with concrete overburden | | | `v08_44_00` | `v08_44_00` | | `icaruscode/Geometry/gdml/icarus_single_complete_no_overburden.gdml` | complete geometry, first induction plane wires 18 m, with no concrete overburden From 14c204ca762e457d5c85ea827939f11b6461ecb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 5 Jul 2022 11:25:01 +0200 Subject: [PATCH 0193/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index a2205ad46..ef18c63a0 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -16,12 +16,13 @@ See the (soon to be done) section on getting `sbndcode` offsite for more detaile List of `sbndcode` releases ------------------------------------------------------------------------ -**Release manager**: [Patrick Green](mailto:patrick.green-3@postgrad.manchester.ac.uk) +**Release manager**: [Fran Nicolás](mailto:fjnicolas@ugr.es) These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_54_00` | Weekly release | [Release Notes](ReleaseNotes095400.html) |`v09_53_02` | Weekly release | [Release Notes](ReleaseNotes095302.html) |`v09_53_01` | Weekly release | [Release Notes](ReleaseNotes095301.html) |`v09_53_00_01` | Weekly release | [Release Notes](ReleaseNotes09530001.html) From 394da3f50ef8de6da8a83ead08e6e4ecc90e0fee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 5 Jul 2022 11:35:22 +0200 Subject: [PATCH 0194/1437] Create ReleaseNotes095400.md --- sbndcode_wiki/Releases/ReleaseNotes095400.md | 58 ++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095400.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095400.md b/sbndcode_wiki/Releases/ReleaseNotes095400.md new file mode 100644 index 000000000..24c83286e --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095400.md @@ -0,0 +1,58 @@ +--- +layout: page +title: ReleaseNotes095400 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.54.00 | 05 jul 2022 | [ReleaseNotes](ReleaseNotes095400.html) | +| --- | --- | --- | + + + +sbndcode v09_54_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_54_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_54_00/sbndcode-v09_54_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR290 + - Added CRT artdaq fragment producer for simulated events + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_54_00 +* larsoft v09_54_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-07-04 Fran Nicolas : Merge branch 'release/v09_54_00' +* 2022-07-04 Fran Nicolas : Update to larsoft v09_54_00 +* 2022-07-04 Francisco Javier Nicolás-Arnaldos : Merge pull request #290 from SBNSoftware/feature/eyandel_crtdaqsim +* 2022-06-28 eyandel : changed where CRT clockspeed is set to align with headers +* 2022-06-24 eyandel : fix header issue +* 2022-06-17 Fran Nicolas : Merge tag 'v09_53_02' into develop +* 2022-05-26 eyandel : update fragment id to encode experiment, fragment type (crt), and plane as well as mac5 following general scheme from sbn-docdb 16111 +* 2022-05-26 eyandel : created CRT artdaq fragment producer for simulated events + +sbndutil +--------------------------------------------------- + +* 2022-07-04 Fran Nicolas : Merge tag 'v09_54_00' into develop +* 2022-07-04 Fran Nicolas : Merge branch 'release/v09_54_00' +* 2022-07-04 Fran Nicolas : Update to larsoft v09_54_00 +* 2022-06-17 Fran Nicolas : Merge tag 'v09_53_02' into develop From 91a3496013c924a5d9fe76655b0679bd74661d82 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Mon, 11 Jul 2022 14:05:15 -0700 Subject: [PATCH 0195/1437] Added some Python starter into geometry instructions --- icaruscode_wiki/Detector_geometry.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index 3c83755f8..aeb04b1ea 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -324,6 +324,19 @@ a channel number: ICARUS geometry update was described in SBN-doc-21693-v3 (Apr 2021). +### Access to the `Geometry` service via Python + +It is possible to interact with LArSoft and ICARUS service providers via Python. +With a fully set up `icaruscode` in the working area, the geometry provider ([`geo::GeometryCore`](https://nusoft.fnal.gov/larsoft/doxsvn/html/classgeo_1_1GeometryCore.html)) +can be initialized with the standard ICARUS configuration via: +```.py +from ICARUSservices import ServiceManager +geom = ServiceManager.get('Geometry') +``` +For example, to get the standard geometry dump the statement `print(geom.Info())` can be used. +The bridge between the C++ code and Python is provided by `cppyy` library, which defines also what can be expected to work and what shouldn't. + + ### Booster Neutrino Beam target and decay pipe Roughly, the BNB target is about 600 m upstream of the detector, i.e. at `( 0, 0, -60000 )` cm. @@ -336,7 +349,6 @@ Roughly, the BNB target is about 600 m upstream of the detector, i.e. at `( 0, 0 ICARUS position w.r.t. NuMI coordinates is described in [SBN DocDB 22998](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=22998) (August 2021). Detector position for MC was updated in the [`icaruscode` pull request #230](https://github.com/SBNSoftware/icaruscode/pull/230)/ - ## Information phased out of this wiki The following information has been removed from this page; look for it in GIT history if needed. From 48623c24f09b9a73bab6dc89aec4ac948a08cc29 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Tue, 12 Jul 2022 13:39:21 -0700 Subject: [PATCH 0196/1437] New page: geometry access in Python --- .../interfaces/python/geometry_examples.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 icaruscode_wiki/interfaces/python/geometry_examples.md diff --git a/icaruscode_wiki/interfaces/python/geometry_examples.md b/icaruscode_wiki/interfaces/python/geometry_examples.md new file mode 100644 index 000000000..0e8823a82 --- /dev/null +++ b/icaruscode_wiki/interfaces/python/geometry_examples.md @@ -0,0 +1,56 @@ +--- +layout: page +title: ICARUS detector geometry interface in Python +description: Examples of accessing ICARUS detector geometry description via Python +toc: true +--- + +Examples of ICARUS detector geometry interface in Python +========================================================= + + +Setup +------ + +ICARUS geometry description can be accessed in Python via the [`geo::GeometryCore`](https://nusoft.fnal.gov/larsoft/doxsvn/html/classgeo_1_1GeometryCore.html) interface. +Assuming that `icarusalg` is set up in the working area, +```.py +from ICARUSservices import ServiceManager +import ROOT +geom = ServiceManager.get('Geometry') +``` +will bind `geom` to a `geo::GeometryCore` instance initialized with the default ICARUS geometry configuration (if a different one is needed, a configuration file must be provided; [ask](mailto:petrillo@slac.stanford.edu) for an example!). + +Note that technically this does not require _gallery_; nevertheless, `geo::GeometryCore` does use _art_-related infrastructure (exceptions, message facility). + + +Example: intersection between wires +------------------------------------ + +_This example was last tested with `icaruscode` `v09_54_00`._ + +To get the geometric point intersection of two wires, [`geo::WireIntersection()`](https://nusoft.fnal.gov/larsoft/doxsvn/html/namespacegeo.html#af365983f9f6d3e62c0462bd312977b92) can be used: +```.py +wireAid = ROOT.geo.WireID(0, 0, 0, 300) +wireBid = ROOT.geo.WireID(0, 0, 1, 600) +wireA, wireB = geom.Wire(wireAid), geom.Wire(wireBid) +crossPoint = ROOT.geo.WiresIntersection(wireA, wireB) +print(f"Intersection between {wireAid} and {wireBid}: {crossPoint} cm") +``` +will return the 3D point on `wireA` extension that is closest to `wireB`. +This does not inform whether the intersection is on the wire or not. That check needs to be explicit: +```.py +crossInfo = ROOT.geo.WiresIntersectionAndOffsets(wireA, wireB) +if crossInfo.offset1 <= wireA.HalfL() and crossInfo.offset2 < wireB.HalfL(): + print(f"Intersection between {wireAid} and {wireBid}: {crossInfo.point} cm") +else: + print(f"Wires {wireAid} and {wireBid} do not intersect.") +``` +which is not as smooth. Here we ask also for the distance of the intersection from the middle point of each wire, and request that it be less than half the wire length. + + + +More examples +-------------- + +If you have an use case in mind and need (or would have benefitted from) an example, please contact [the maintainer of this page](petrillo@slac.stanford.edu), who might add what you need to it. From 34fa76cc9bb886d83e47103638642c4ff0bae587 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Tue, 12 Jul 2022 13:41:51 -0700 Subject: [PATCH 0197/1437] Added geometry access via python --- icaruscode_wiki/Detector_geometry.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/icaruscode_wiki/Detector_geometry.md b/icaruscode_wiki/Detector_geometry.md index aeb04b1ea..b6fd56a49 100644 --- a/icaruscode_wiki/Detector_geometry.md +++ b/icaruscode_wiki/Detector_geometry.md @@ -336,6 +336,8 @@ geom = ServiceManager.get('Geometry') For example, to get the standard geometry dump the statement `print(geom.Info())` can be used. The bridge between the C++ code and Python is provided by `cppyy` library, which defines also what can be expected to work and what shouldn't. +Examples are available in [a specific wiki page](interfaces/python/geometry_examples.md). + ### Booster Neutrino Beam target and decay pipe From d2503b046c4297ae4fd3fc898486675286057e0f Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 21 Jul 2022 11:17:41 -0500 Subject: [PATCH 0198/1437] Create ConfigDB.md --- sbn_online_wiki/ConfigDB.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ConfigDB.md b/sbn_online_wiki/ConfigDB.md index 7386658f8..41245361b 100644 --- a/sbn_online_wiki/ConfigDB.md +++ b/sbn_online_wiki/ConfigDB.md @@ -14,7 +14,7 @@ As a basic description, here's a step-by-step guide for making a new configurati (1) Setup database software -`source /daq/software/database/setup_database.sh` +`source ~/DAQ_DevAreas/DAQ_SHIFTER_CURRENT/DAQInterface/setup_daqinterface.sh` (2) Makes/move yourself into a clean work directory. There's a special function setup for that: From f8cc394f2565ab2e17c7279456adadc82d6b5fd3 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 21 Jul 2022 16:02:14 -0500 Subject: [PATCH 0199/1437] Update ConfigDB.md --- sbn_online_wiki/ConfigDB.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ConfigDB.md b/sbn_online_wiki/ConfigDB.md index 41245361b..ad7758669 100644 --- a/sbn_online_wiki/ConfigDB.md +++ b/sbn_online_wiki/ConfigDB.md @@ -52,7 +52,7 @@ From the top level of your working area (that you made in step 2), you should "i There is a concept of marking configurations as _active_ and _inactive_ -- _inactive_ configurations will not be displayed in the RC GUI and cannot be run. Typically we want to label any configuration that should not longer be used as _inactive_: configurations that are outdated, or no longer valid, or just no longer needed. -`sbndaq` has some additional DB utility functions defined that make declaring configurations active or inactive easier. With sbndaq setup (_and_ `artdaq_database` setup ... so likely do `source setup_daqinterface.sh` in the current DAQInterface area to be sure to pick it up), you can issue from the commandline: +`sbndaq` has some additional DB utility functions defined that make declaring configurations active or inactive easier. With sbndaq setup (_and_ `artdaq_database` setup ... so likely do `source ~/DAQ_DevAreas/DAQ_SHIFTER_CURRENT/DAQInterface/setup_daqinterface.sh` in the current DAQInterface area to be sure to pick it up), you can issue from the commandline: `markConfigInactive.py ` From e11431a5d8551af0480c4ba9617e76498badd1d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 25 Jul 2022 15:54:37 +0200 Subject: [PATCH 0200/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index ef18c63a0..ed69d6d30 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_55_00` | Weekly release | [Release Notes](ReleaseNotes095500.html) |`v09_54_00` | Weekly release | [Release Notes](ReleaseNotes095400.html) |`v09_53_02` | Weekly release | [Release Notes](ReleaseNotes095302.html) |`v09_53_01` | Weekly release | [Release Notes](ReleaseNotes095301.html) From c39d32f3d381e4534d8cc95671386f6c83732405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 25 Jul 2022 15:56:08 +0200 Subject: [PATCH 0201/1437] Create ReleaseNotes095500.md --- sbndcode_wiki/Releases/ReleaseNotes095500.md | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095500.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095500.md b/sbndcode_wiki/Releases/ReleaseNotes095500.md new file mode 100644 index 000000000..fe8f18520 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095500.md @@ -0,0 +1,51 @@ +--- +layout: page +title: ReleaseNotes095500 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.55.00 | 25 jul 2022 | [ReleaseNotes](ReleaseNotes095500.html) | +| --- | --- | --- | + + + +sbndcode v09_55_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_55_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_55_00/sbndcode-v09_55_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +- sbncode v09_55_00 +- larsoft v09_55_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-07-25 Fran Nicolas : Merge branch 'release/v09_55_00' +* 2022-07-25 Fran Nicolas : Update to version v09_55_00 +* 2022-07-04 Fran Nicolas : Merge tag 'v09_54_00' into develop + +sbndutil +--------------------------------------------------- + +* 2022-07-25 Fran Nicolas : Merge tag 'v09_55_00' into develop +* 2022-07-25 Fran Nicolas : Merge branch 'release/v09_55_00' +* 2022-07-25 Fran Nicolas : Update to version v09_55_00 +* 2022-07-04 Fran Nicolas : Merge tag 'v09_54_00' into develop From d3855908df2b98a13c3187a3a69aef6f044421c7 Mon Sep 17 00:00:00 2001 From: Bruce Howard <61521590+brucehoward-physics@users.noreply.github.com> Date: Mon, 25 Jul 2022 17:14:09 -0700 Subject: [PATCH 0202/1437] Update Grafana connection commands, RemoteShift.md --- Operations/SBN_FD/RemoteShift.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Operations/SBN_FD/RemoteShift.md b/Operations/SBN_FD/RemoteShift.md index 77df415c7..f48ee9d40 100644 --- a/Operations/SBN_FD/RemoteShift.md +++ b/Operations/SBN_FD/RemoteShift.md @@ -418,9 +418,9 @@ section](RemoteShift/edit?section=19){.icon-only From a terminal, do: - ssh -KL 10080:localhost:10080 icarus@icarus-gateway01.fnal.gov ssh -KL 10080:localhost:10080 icarus@icarus-evb01.fnal.gov + ssh -KL 10089:localhost:10080 icarus@icarus-gateway01.fnal.gov ssh -KL 10080:localhost:10080 icarus@icarus-evb06.fnal.gov -Then, in a browser, open . This will grant +Then, in a browser, open . This will grant access to the Grafana page. Login is \"ICARUS-Shift\". Password can be found on the [SBN-FD Electronic Logbook Projects page](http://dbweb0.fnal.gov/ECL/sbnfd/PL/project?pid=1). @@ -428,13 +428,13 @@ page](http://dbweb0.fnal.gov/ECL/sbnfd/PL/project?pid=1). If you get errors following the above, try breaking the step into two and going to db02 instead, so\ - ssh -KL 10080:localhost:10080 icarus@icarus-gateway01.fnal.gov + ssh -KL 10089:localhost:10080 icarus@icarus-gateway01.fnal.gov and then in the terminal this opens - ssh -KL 10080:localhost:10080 icarus@icarus-db02.fnal.gov + ssh -KL 10080:localhost:10080 icarus@icarus-evb06.fnal.gov -and *then* opening the web browser and going to +and *then* opening the web browser and going to . ~\ From bf345102b3d2d12ac5e2a036a97ce0b17d76c5e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 26 Jul 2022 18:47:11 +0200 Subject: [PATCH 0203/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index ed69d6d30..5eb01cfd5 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_55_01` | Weekly release | [Release Notes](ReleaseNotes095501.html) |`v09_55_00` | Weekly release | [Release Notes](ReleaseNotes095500.html) |`v09_54_00` | Weekly release | [Release Notes](ReleaseNotes095400.html) |`v09_53_02` | Weekly release | [Release Notes](ReleaseNotes095302.html) From c463a085d162286e5bf2c2f6edc8a8a3b8f97b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 26 Jul 2022 18:51:25 +0200 Subject: [PATCH 0204/1437] Create ReleaseNotes095501.md --- sbndcode_wiki/Releases/ReleaseNotes095501.md | 55 ++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095501.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095501.md b/sbndcode_wiki/Releases/ReleaseNotes095501.md new file mode 100644 index 000000000..860dc3934 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095501.md @@ -0,0 +1,55 @@ +--- +layout: page +title: ReleaseNotes095501 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.55.01 | 26 jul 2022 | [ReleaseNotes](ReleaseNotes095501.html) | +| --- | --- | --- | + + + +sbndcode v09_55_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_55_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_55_01/sbndcode-v09_55_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- +* sbndcode PR291 + * Update BNB bucket width + +Updated dependencies +--------------------------------------------------- +* sbncode v09_55_01 +* larsoft v09_55_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-07-26 Fran Nicolas : Merge branch 'release/v09_55_01' +* 2022-07-26 Fran Nicolas : Update to larsoft version v09_55_01 +* 2022-07-26 Francisco Javier Nicolás-Arnaldos : Merge pull request #291 from SBNSoftware/feature/bnb_timing +* 2022-07-25 Fran Nicolas : Merge tag 'v09_55_00' into develop +* 2022-07-22 Fran Nicolas : Update SpillTimeConfig + +sbndutil +--------------------------------------------------- + +* 2022-07-26 Fran Nicolas : Merge tag 'v09_55_01' into develop +* 2022-07-26 Fran Nicolas : Merge branch 'release/v09_55_01' +* 2022-07-26 Fran Nicolas : Update to larsoft version v09_55_01 +* 2022-07-25 Fran Nicolas : Merge tag 'v09_55_00' into develop From de1a5b9addfb2b492d9d4ba2df0b096e44587406 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Thu, 28 Jul 2022 10:38:30 +0200 Subject: [PATCH 0205/1437] updating ICARUS cosmic in time sample --- sbn/sbnprod_wiki/sample.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index ff2733d60..39ad0ae3c 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -104,6 +104,18 @@ ICARUS MC | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| NUMI in-time cosmics with Overburden | MC2022A | v09_37_02_04 | 809,054 | reco2 | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_04_reco2 | +| --- | --- | --- | --- | calib tuple | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_04_calibtuples | +| --- | --- | v09_37_02_07 | 809,054 | caf | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_07_caf | +| --- | --- | --- | --- | flatcaf | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_07_flatcaf | +| NUMI in-time cosmics without Overburden | MC2022A | v09_37_02_04 | 1,441,943 | reco2 | IcarusProd_2022A_NUMI_in-time_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | --- | calib tuple | IcarusProd_2022A_NUMI_in-time_Cosmics_v09_37_02_04_calibtuples | +| --- | --- | v09_37_02_07 | 1,443,061 | caf | IcarusProd_2022A_NUMI_in-time_Cosmics_v09_37_02_07_caf | +| --- | --- | --- | --- | flatcaf | IcarusProd_2022A_NUMI_in-time_Cosmics_v09_37_02_07_flatcaf | +| BNB in-time cosmics with Overburden | MC2022A | v09_37_02_04 | 1,909,017 | reco2 | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | --- | calib tuple | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_04_calibtuples | +| --- | --- | v09_37_02_07 | 1,909,017 | caf | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_07_caf | +| --- | --- | --- | --- | flatcaf | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_07_flatcaf | | Cosmics, Lifetime 3.5 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_reco2 | | --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_calibtuples | | Cosmics, Lifetime 6 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_reco2 | From d98f5c3e8813e3034641e83c0ec986d238fae51e Mon Sep 17 00:00:00 2001 From: Marco Del Tutto Date: Thu, 28 Jul 2022 16:34:39 -0500 Subject: [PATCH 0206/1437] Update --- sbndcode_wiki/Computing_resources.md | 376 ++++++++++++--------------- 1 file changed, 165 insertions(+), 211 deletions(-) diff --git a/sbndcode_wiki/Computing_resources.md b/sbndcode_wiki/Computing_resources.md index 1c8d1112b..4c4427b53 100644 --- a/sbndcode_wiki/Computing_resources.md +++ b/sbndcode_wiki/Computing_resources.md @@ -1,6 +1,9 @@ --- layout: page title: Computing resources +description: Computing resources summary and guidance for SBND +toc: true +toc_title: Contents --- @@ -8,81 +11,33 @@ title: Computing resources Computing resources ========================================================== -- **Table of contents** -- [Computing resources] - - - - [SCD liaison] - - - [Computing Access] - - - [Where to work: interactive nodes - (\"GPVM\")] - - - [Opening a ticket in Fermilab Service - Desk] - - - [Accessing resources via - certificates] - - - [Accessing resources via Virtual Private - Network] - - - [Submitting jobs: Virtual - Organisation] - - - [Submitting jobs: grid - resources] - - - [Software distribution] - - [Local Fermilab area - (FermiApp)] - - [CVMFS] - - - [Storing data] - - [Local storage: BlueArc disks] - - [World-visible storage: - dCache] - - [Tape storage] - - [File database (SAM)] - - - [Web server pages] - - [SBN online web gate] - - [SBND data web directory] - - [Communication tools] - - [Mailing lists] - - [Electronic logbook] - - - [Other obscure services and - resources] - SBND has a number of computing resources available, many of which are supplied by Fermilab Computing Sector (SCD when we talk about the -Scientific Computing Division).\ +Scientific Computing Division). Here we list some of them. -> Fermilab Computing Division has produced a **[very short -> pamphlet]{style="color: red;"}** explaining in a nutshell the -> different credentials used in Fermilab. It can be found as [document -> 5892 in the SCD -> DocDB](http://cd-docdb.fnal.gov/cgi-bin/ShowDocument?docid=5892). +> Fermilab Computing Division has produced a +> [very short flyer](http://cd-docdb.fnal.gov/cgi-bin/ShowDocument?docid=5892) +> explaining in a nutshell the different credentials used in Fermilab. +> It can be found as [document 5892 in the SCD DocDB](http://cd-docdb.fnal.gov/cgi-bin/ShowDocument?docid=5892). > **It is a strongly recommended reading, to everybody!** + #### SCD liaison The Scientific Computing Division Liaison is a person from Fermilab SCD who acts as a bridge between SCD and an experiment. They is typically fairly informed of what is going on, computation-wise, in the -experiment, and in the computing division^[1]^. They is also able +experiment, and in the computing division _[1]_. They is also able to route any request to the proper people, but they is not necessarily required to do actual work on solving the merit of the issues. Also, they is not required to be a member of the experiment. -The current liaison for SBND is [[Vito Di -Benedetto]{style="color: limegreen;font-weight: bold;font-size: larger;"}](mailto:vito@fnal.gov) -(SCD). +The current liaison for SBND is [Vito Di Benedetto](mailto:vito@fnal.gov) (SCD). -^1^ This is defined as knowing what goes on in the computing division +_[1]_ This is defined as knowing what goes on in the computing division more than most experiment members, and knowing what is going on in the experiment more than most of the computing division people. @@ -91,13 +46,9 @@ experiment more than most of the computing division people. Computing Access ---------------------------------------------------- -See the [Computing resources](Computing_resources.html) page -to see a discussion about the resources available to SBND. - To get a Fermilab computing account follow the instructions at this -site: -. -Our experiment number is T-1053. +site: https://get-connected.fnal.gov/accessandbadging/access/. +Our experiment number is `T-1053 (SBND)`. **Write down the initial Kerberos and Services Account passwords before submitting**. They will be necessary once your accounts have been @@ -105,46 +56,51 @@ created. You will receive an email once this is complete which gives you your Fermilab email account and username (you will need this for service -now).\ +now). + +The next step is to "kerberize" your machine. You can follow instructions here: +- Mac: https://fermi.servicenowservices.com/kb_view.do?sysparm_article=KB0011294 +- Linux: +- Windows: + Once your computer is SSH-ready and kerberized, you should be able to -log on by typing:\ +log on by typing: - kinit ${USER}@FNAL.GOV - ssh -Y ${USER}@sbndgpvm01.fnal.gov +```bash +kinit ${USER}@FNAL.GOV +# insert your kerberos password +ssh -Y ${USER}@sbndgpvm01.fnal.gov +``` -\ (where `$USER` is your Fermilab user name). -If this does not work, please submit a [service desk -ticket] to -request a SBND project account (I believe someone has to authorise this -so it will probably fail): +If this does not work, please submit a to +request a SBND project account: -1. [ServiceNow](https://fermi.service-now.com/fsc/) -\> - Service Catalog -\> Affiliation/Experiment Computing Account Request +1. [ServiceNow](https://fermi.servicenowservices.com/) -> Request something; + search for something like: `Experiment Computing Account` and you'll be offered + a "Experiment/Project/Collaboration Computing Account" match, that you can pick; 2. Enter your name, then select `T-1053 (SBND)` -3. Verify that the correct Fermilab principal is displayed when you - enter your name -4. Enter your home institution, then click \. +3. Verify that the correct Fermilab principal is displayed when you enter your name +4. Enter your home institution, then click . You can reset your Fermilab passwords for service-now here: -\ -If you can\'t remember your password because you didn\'t write it down -then you will have contact the [service -desk](mailto:servicedesk@fnal.gov) (+1 (630) 840-2345). + +If you can't remember your password because you didn't write it down +then you will have contact the [service desk](mailto:servicedesk@fnal.gov) (+1 (630) 840-2345). -Where to work: interactive nodes (\"GPVM\") +Where to work: interactive nodes ("GPVM") --------------------------------------------------------------------------------------------------- -We have some dedicated \"nodes\" where we can log in and work -interactively.\ +We have some dedicated "nodes" where we can log in and work +interactively. These are General Purpose Virtual Machines (GPVM); they are shared by all SBND collaborators, and they can not be the fastest way to develop -and run analyses.\ +and run analyses. But they see all the resources that we have available: you can read data -from SBND disks and tapes, and you can submit SBND jobs to the grid.\ +from SBND disks and tapes, and you can submit SBND jobs to the grid. The access is via SSH with FNAL.GOV Kerberos credentials. The nodes and their OS version are: @@ -157,23 +113,18 @@ The nodes and their OS version are: | sbndbuild01.fnal.gov | SLF 7 | | sbndbuild02.fnal.gov | SLF 7 | -The [GPVM]{style="color: green;"} interactive machines have no relevant +The `GPVM` interactive machines have no relevant local storage, and areas in `/sbnd` and `/pnfs` should be used (the home directory works too, but it has small allowance). -The interactive \"build nodes\" [BUILD]{style="color: navy;"} have -roughly the same environment as the other GPVM\'s. The policy is to +The interactive "build nodes" have +roughly the same environment as the other GPVM's. The policy is to **use these machines only to build code and running tests**; this excludes job submission and local running of job campaigns and of single -jobs beyond the size of a test job (say, 100 events). To maximise the -benefit, build from the local disk; you can make your own scratch area -by - - cd /scratch - ./createMyScratchArea.sh +jobs beyond the size of a test job (say, 100 events). -[Information about all SBND GPVM\'s](SBND_servers.html) is -on a [separate page](SBND_servers.html). +[Information about all SBND GPVM's](SBND_servers.html) is +on a [separate page](SBND_servers.md). @@ -181,56 +132,56 @@ Opening a ticket in Fermilab Service Desk ------------------------------------------------------------------------------------------------------ This is the favourite sport of ours: when something goes wrong, open a -ticket.\ +ticket. You want to open a Service Desk ticket if your job submission that used to work yesterday fails today, if the GPVM are very slow (if they are -just slow, it\'s normal), if you are denied access to some resource you -expect to deserve.\ -You don\'t open a service desk ticket if your jobs crash (most of the +just slow, it's normal), if you are denied access to some resource you +expect to deserve. +You don't open a service desk ticket if your jobs crash (most of the time, you just have to fix them), if there is a bug in SBND code -([e-mail to SBND mailing list](mailto:sbnd-software@fnal.gov) and/or -[Redmine -ticket](https://cdcvs.fnal.gov/redmine/projects/sbndcode/issues/new) -there) or if you need help with using LArSoft (LArSoft -[wiki](.html), [mailing list](mailto:larsoft@fnal.gov) or -[forum](http://www.larforum.org/forum), and [SBND mailing -list](mailto:sbnd-software@fnal.gov)). - -You need to log in via Fermilab \"Service\" password (the same you use +([e-mail to SBND mailing list](mailto:sbnd_software@fnal.gov), +write about it on SBN Slack channel (`#sbnd_general`) +and/or [open a GitHub issue](https://github.com/SBNSoftware/sbndcode/issues/new)) +or if you need help with using LArSoft +([LArSoft wiki](https://cdcvs.fnal.gov/redmine/projects/larsoft/wiki), +[LArSoft mailing list](mailto:larsoft@fnal.gov), +and [SBND mailing list](mailto:sbnd_software@fnal.gov)). + +You need to log in via Fermilab "Services" password (the same you use to access Fermilab e-mail and Redmine), and then you go at: - + -On the left, you\'ll have a list of \"Self service\" items: selecting -\"Scientific Computing Services\" or \"Core Computing Services\" you +That will bring you to the "web portal" interface where you can generically +"request something" and a human being will sort it out in due time. +Another way is to access the [older service catalog](https://fermi.servicenowservices.com). +Then, on the left, you'll have a list of "Self service" items: selecting +"Scientific Computing Services" or "Core Computing Services" you will be presented with a list of topics that should direct you to the -right type of request.\ -Most of the requests are under the \"Scientific Computing Services\", +right type of request. +Most of the requests are under the "Scientific Computing Services", with a relevant exception in the creation of computing accounts, which -is in \"Core Computing Services\". +is in "Core Computing Services". -> This ticket is completely unrelated to [issue tracking -> tickets](https://cdcvs.fnal.gov/redmine/projects/sbndcode/issues), +> This ticket is completely unrelated to +> [issue tracking tickets](https://cdcvs.fnal.gov/redmine/projects/sbndcode/issues), > opened via Redmine, against LArSoft or `sbndcode` pertaining LArSoft -> or SBND software bug reports or feature requests. +> or ICARUS software bug reports or feature requests. -Accessing resources via certificates --------------------------------------------------------------------------------------------- +Accessing resources (DocDB, VOMS, ...) via certificates +-------------------------------------------------------- -> Note: this section is about \"personal\" certificates, not the kind of -> [certificate proxies you need to work on the -> grid](Get_a_certificate_proxy.html). +> Note: this section is about "personal" certificates, not the kind of +> [certificate proxies you need to work on the grid](Get_a_certificate_proxy.md). -A CILogon certificate gives access to a number of Fermilab resources.\ -After you [get a CILogon -certificate](Setting_up_access_with_CILogon_certificate.html), +A CILogon certificate gives access to a number of Fermilab resources. +After you [get a CILogon certificate](Setting_up_access_with_CILogon_certificate.md), you will gain access to: - [SBN DocDB](http://sbn-docdb.fnal.gov) -- [Fermilab Virtual Organization (VOMS) - server](https://voms.fnal.gov:8443/voms/fermilab/user/home.action) +- [Fermilab Virtual Organization (VOMS) server](https://voms.fnal.gov:8443/voms/fermilab/user/home.action) - Jenkins build server @@ -240,7 +191,7 @@ Accessing resources via Virtual Private Network Some resources can be accessed only from within Fermilab network. For some, the access outside Fermilab network is still allowed but -crippled.\ +crippled. To allow users to access these resources in full by connecting via a Virtual Private Network (VPN), which needs to be [set up on the client node](../sbn_wiki/VPN.md). @@ -257,84 +208,95 @@ Submitting jobs: grid resources --------------------------------------------------------------------------------- This is about where your job gets actually shipped for execution, and -who runs it.\ +who runs it. + We can use different resources: - *FermiGrid* is the grid dedicated to Fermilab users - *Open Science Grid* is an international grid, with strong contributions from physics but not limited to it -- *Wilson Cluster* is a Fermilab cluster *offering Graphics Processing - Units* (GPU); if you need information, ask [Corey - Adams](mailto:coreyadams@fas.harvard.edu) +- *Wilson Cluster* is a Fermilab cluster *offering Graphics Processing Units* (GPU) -To submit jobs, you\'ll also need a [certificate -proxy](Get_a_certificate_proxy.html). +To submit jobs, you'll also need a [certificate proxy](Get_a_certificate_proxy.md). + +_Note_: to ensure that your LArSoft jobs are executed in a complete environment, +it is strongly recommended that the jobs are executed in the proper [Singularity container](https://singularity.lbl.gov) +([FIFE documentation here](https://cdcvs.fnal.gov/redmine/projects/fife/wiki/Singularity_jobs)). +One such container featuring Scientific Linux Fermi 7 (SL7) is available in CVMFS, +and it can be enabled by adding to `jobsub_submit` the options: +`--append_condor_requirements='(TARGET.HAS_SINGULARITY=?=true)' -l '+SingularityImage="/cvmfs/singularity.opensciencegrid.org/fermilab/fnal-wn-sl7:latest"'` +(when using LArBatch `project.py` from `larbatch` `v01_55_01` or newer, +Singularity containers are already enabled in most configurations, +as [documented by the author](https://indico.fnal.gov/event/48412/#2-container-issues-and-larbatc), +and often no action is needed, beside maybe adding a `` element for good measure). +Also note that FIFE recommends that Operating System selection be not enforced +via `--os` option when using containers (after all, we are explicitly shipping the whole OS). + +And, about FIFE recomendations, [Project**-**py](https://cdcvs.fnal.gov/redmine/projects/project-py/wiki/Project-py_guide) +is the recommended job submission tool (SBN-specific wiki documentation pending). Software distribution -------------------------------------------------------------- -SBND code and the \"software stack\" it relies on are distributed in -binary form for a few supported platforms.\ +SBND code and the "software stack" it relies on are distributed in +binary form for a few supported platforms. + Here is where you can find those packages pre-installed: CVMFS and FermiApp. LArSoft/SBND code UPS products precompiled for selected -platforms can also be downloaded from the [SciSoft -repository](Using_LArSoft_on_a_local_machine.html).\ -The [content of the -areas](Software_distribution_content.html) is described in -its own web page. - +platforms can also be downloaded from the +[SciSoft repository](Using_LArSoft_on_a_local_machine.md). +The [content of the areas](Software_distribution_content.md) is described +in its own web page. ### Local Fermilab area (FermiApp) This area is visible from Fermi Grid nodes and GPVMs. It is accessible -as `/grid/fermiapp/products/sbnd`.\ -It contains SBND software distribution.\ -*[[Instructions](Write_files_to_grid.html) on how to deploy -software in there are -[elsewhere](Write_files_to_grid.html).]{style="color: gray;"}* +as `/grid/fermiapp/products/sbnd`. +It contains SBND software distribution. +[Instructions](Write_files_to_grid.html) on how to deploy +software in there are [elsewhere](Write_files_to_grid.html). ### CVMFS -SBND has a CVMFS area with the `sbnd.opensciencegrid.org`.\ +SBND has a CVMFS area with the `sbnd.opensciencegrid.org`. + CVMFS is a file system that mirrors locally a remote storage area (not dissimilarly from NFS), and it is available on the Open Science Grid -nodes (and Fermigrid as well).\ -So it is a safe bet.\ -You can also install it on your laptop; [LArSoft links to -instructions](LArSoft_cvmfs_page.html) (currently from -MicroBooNE). Good news is, it\'s not hard. +nodes (and Fermigrid as well). +So it is a safe bet. + +You can also install it on your laptop; +[LArSoft links to instructions](https://cdcvs.fnal.gov/redmine/projects/larsoft/wiki/LArSoft_cvmfs_page) +(currently from MicroBooNE). Good news is, it's not hard. The full path to access the area is: -`/cvmfs/sbnd.opensciencegrid.org/products/sbnd`. The `products/sbnd` -directory contains our software distribution. +`/cvmfs/icarus.opensciencegrid.org/products/icarus`. The +`products/icarus` directory contains our software distribution. -*[[Instructions](Write_files_to_CVMFS.html) on how to deploy -software in there are -[elsewhere](Write_files_to_CVMFS.html).]{style="color: gray;"}* +_[[Instructions](Write_files_to_CVMFS.md) on how to deploy software in there are +[elsewhere](Write_files_to_CVMFS.md).]_ Storing data -------------------------------------------- -We have two types of data storage available, that we\'ll call -\"BlueArc\" and \"dCache\". FIFE explains [their -characteristics](Understanding_storage_volumes.html) in -detail.\ -Production level data are stored to tape (\"Enstore\") and tracked with -a database (\"SAM\"). +We have two types of data storage available, that we'll call +"BlueArc" and "dCache". FIFE explains [their characteristics](Understanding_storage_volumes.md) +in detail. +Production level data are stored to tape ("Enstore") and tracked with a database ("SAM"). ### Local storage: BlueArc disks BlueArc is a brand of the disk servers Fermilab uses. These are -multi-terabyte disks that are split between experiments.\ +multi-terabyte disks that are split between experiments. SBND has its own slice of it, in two partitions: - `/sbnd/data` where you can write a few large files (e.g. ROOT data); @@ -344,19 +306,20 @@ SBND has its own slice of it, in two partitions: - `/sbnd/app` where you can keep a few software builds; this is also a shared disk, and you should keep no large data here. But you need to have the code here, as content in the `/sbnd/data` partition - **can\'t be executed**. + **can't be executed**. **These data areas can be only directly accessed from the GPVM and BUILD nodes.** If your grid job needs data from them, you have to copy the information locally first. You should create your own directory under `/sbnd/data/users/${USER}` -and `/sbnd/app/users/${USER}`, and stick to them.\ +and `/sbnd/app/users/${USER}`, and stick to them. Space available to SBND collaboration: - | | | - |--|--| - | `/sbnd/app` | 3 TB | - | `/sbnd/data` | 16 TB | + +path | space +----------------| -------- +`/sbnd/app` | 3.0 TB +`/sbnd/data` | 16 TB Be fair about disk usage and make sure to clean up unneeded stuff, this @@ -368,18 +331,22 @@ This information can be read using `quota -s` or `df -h`. ### World-visible storage: dCache -dCache area consists of a huge data space, made of tapes and disks.\ -We have two types of dCache areas: +dCache area consists of a huge data space, made of tapes and disks. + +We have three types of dCache areas: - `scratch`: files in this area can be deleted automatically; you can store a grid job result there waiting to transfer it into a safe - place, but don\'t rely on leaving your important stuff there for + place, but don't rely on leaving your important stuff there for long - `persistent`: files in this area will not be deleted +- `resilient`: area used for files with intense access (like a + working area snaphot which is accessed by thousands of jobs) -We have a limited quota of space as well, so fill it responsibly.\ +We have a limited quota of space as well, so fill it responsibly. More information (including how to remotely access it) can be found in -the [SBND dCache wiki page](SBND_dCache_storage.html). +the [SBND dCache wiki page](SBND_dCache_storage.md). + @@ -394,33 +361,34 @@ the [SBND dCache wiki page](SBND_dCache_storage.html). ### File database (SAM) Fermilab provides a service, SAM, to track where files are currently -stored. An introduction to the system can be found on [User Guide for -SAM](User_Guide_for_SAM.html), and users interact with it -via [sam-web-client](.html). In short, SAM not only stores +stored. An introduction to the system can be found on [User Guide for SAM](User_Guide_for_SAM.md), +and users interact with it via +[sam-web-client](https://cdcvs.fnal.gov/redmine/projects/sam-web-client/wiki). +In short, SAM not only stores metadata of the files (e.g., that a file is simulation, and how many -events are in it) and the current locations (that is, the \"original\" +events are in it) and the current locations (that is, the "original" tape location, the copies cached in dCache, the copies spread across -worker nodes\...), but it can also queue the files for delivery. +worker nodes...), but it can also queue the files for delivery. -SBND is assigned a \"station\" that SAM clients will communicate with to -access the database.\ -More information on [SBND SAM](SAM.html) is collected in its -own [web page](SAM.html). +SBND is assigned a "station" that SAM clients will communicate with +to access the database. +More information on [SBND SAM](SAM.md) is collected in its +own [web page](SAM.md). Web server pages ---------------------------------------------------- -SBND and SBN has a number of web pages. Information about them is -available in the [SBND wiki](SBND_homepage.html). +SBND and SBN has a number of web pages. +A few are listed here. ### SBN online web gate The SBN online web gate is at . That is not -a public page.\ +a public page. Its content is also readable directly from SBND GPVM\'s and FNALU as `/web/sites/s/sbn-online.fnal.gov`. Direct write access is restricted, and can be requested asking [William Badgett](mailto:badgett@fnal.gov). @@ -431,13 +399,13 @@ volunteers to help populate it with useful detector status info. ### SBND data web directory -The SBND data web directory is at .\ +The SBND data web directory is at . The site is currently only accessible via a browser when connected to the FNAL network (VPN included). We are in the process of changing -this.\ +this. Its content is also readable directly from SBND GPVM\'s and FNALU as `/web/sites/s/sbnd-data.fnal.gov`. Direct write access is restricted, -and can be requested asking the \"owner\" of the site. At time of +and can be requested asking the "owner" of the site. At time of writing, the site owners are [Andrzej Szelc](mailto:andrzej.szelc@manchester.ac.uk) and [Dominic Brailsford](mailto:d.brailsford@lancaster.ac.uk). @@ -450,31 +418,17 @@ Brailsford](mailto:d.brailsford@lancaster.ac.uk). #### Mailing lists -SBND owns some mailing lists for specific purposes. The most generally -useful are listed in the [SBND Redmine -wiki](SBND_homepage.html#Collaboration).\ -Mailing lists owned by SBND hosted at [Fermilab -ListServ](http://listserv.fnal.gov): - - -------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- - **Mailing list** **owner** **purpose** - ? collaboration-wide discussion arena of general SBND topics, including announcements for the collaboration - ? collaboration-wide discussion and trouble-shooting arena for software issues (e.g. ROOT, LArSoft, \...) - [Gianluca Petrillo](mailto:petrillo@fnal.gov), [Andrzej Szelc](mailto:andrzej.szelc@manchester.ac.uk) mostly the target of automated e-mails from the build system - [Dominic Brailsford](mailto:d.brailsford@lancaster.ac.uk), [Andrzej Szelc](mailto:andrzej.szelc@manchester.ac.uk), [Vito Di Benedetto](mailto:vito@fnal.gov) for communication within the SBND data and simulation production crew and with the computing division experts (e.g. POMS) - [Dominic Brailsford](mailto:d.brailsford@lancaster.ac.uk), [Andrzej Szelc](mailto:andrzej.szelc@manchester.ac.uk) To receive notice of commits to sbndcode and sbndutil - -------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- +Add link to mailing list webpage #### Electronic logbook -SBND online system uses an [electronic -logbook](http://dbweb0.fnal.gov/ECL/sbnd/) (friendly called -\"eLog\"), accessible at . The +SBND online system uses an [electronic logbook](http://dbweb0.fnal.gov/ECL/sbnd/) (friendly called +"eLog"), accessible at . The Fermilab service account credentials are used to log in. Most current SBND members have an account. New members need to request one by -clicking on the \"Members\" tab and then on the \"Request an account\" +clicking on the "Members" tab and then on the "Request an account" link. From 17b8dd4dc162dc8c43e2be8e3b48e6ec5523d86b Mon Sep 17 00:00:00 2001 From: Marco Del Tutto Date: Thu, 28 Jul 2022 16:42:01 -0500 Subject: [PATCH 0207/1437] Update --- sbndcode_wiki/Computing_resources.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sbndcode_wiki/Computing_resources.md b/sbndcode_wiki/Computing_resources.md index 4c4427b53..417ec8307 100644 --- a/sbndcode_wiki/Computing_resources.md +++ b/sbndcode_wiki/Computing_resources.md @@ -47,7 +47,7 @@ Computing Access ---------------------------------------------------- To get a Fermilab computing account follow the instructions at this -site: https://get-connected.fnal.gov/accessandbadging/access/. +site: . Our experiment number is `T-1053 (SBND)`. **Write down the initial Kerberos and Services Account passwords before @@ -59,7 +59,7 @@ Fermilab email account and username (you will need this for service now). The next step is to "kerberize" your machine. You can follow instructions here: -- Mac: https://fermi.servicenowservices.com/kb_view.do?sysparm_article=KB0011294 +- Mac: - Linux: - Windows: @@ -104,14 +104,16 @@ from SBND disks and tapes, and you can submit SBND jobs to the grid. The access is via SSH with FNAL.GOV Kerberos credentials. The nodes and their OS version are: - | Node | OS | - |----------------------|-------| - | sbndgpvm01.fnal.gov | SLF 7 | - | sbndgpvm02.fnal.gov | SLF 7 | - | sbndgpvm03.fnal.gov | SLF 7 | - | sbndgpvm04.fnal.gov | SLF 7 | - | sbndbuild01.fnal.gov | SLF 7 | - | sbndbuild02.fnal.gov | SLF 7 | + Node | OS +----------------------|------- + `sbndgpvm01.fnal.gov` | SLF 7 + `sbndgpvm02.fnal.gov` | SLF 7 + `sbndgpvm03.fnal.gov` | SLF 7 + `sbndgpvm04.fnal.gov` | SLF 7 + `sbndbuild01.fnal.gov` | SLF 7 + `sbndbuild02.fnal.gov` | SLF 7 + + The `GPVM` interactive machines have no relevant local storage, and areas in `/sbnd` and `/pnfs` should be used (the home From ebfc4ad4aa91af4eb7f9f88995282ad45feb6a6b Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Jul 2022 08:35:39 -0500 Subject: [PATCH 0208/1437] Create Plots_and_Stuff --- sbndcode_wiki/commissioning/Plots_and_Stuff | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 sbndcode_wiki/commissioning/Plots_and_Stuff diff --git a/sbndcode_wiki/commissioning/Plots_and_Stuff b/sbndcode_wiki/commissioning/Plots_and_Stuff new file mode 100644 index 000000000..e775d6399 --- /dev/null +++ b/sbndcode_wiki/commissioning/Plots_and_Stuff @@ -0,0 +1,20 @@ +--- +layout: page +title: SBND Commissioning Plots +subtitle: +image: sbndcode_wiki/sbnd_logo.png +description: pretty plots +hero_height: is-medium +# menubar: sbndcode_menu +toc: true +toc_title: SBND Commissioning Plots +--- + + + + +SBND Commissioning - plot repository +======================================================================== + +CRT sharp sharp plots and images +![muonpeak](files/beammuon.png) From 42177d3bf551868f5d9197b58e836a82a48c38e0 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Jul 2022 08:38:40 -0500 Subject: [PATCH 0209/1437] Add files via upload --- sbndcode_wiki/commissioning/beampeak.png | Bin 0 -> 13815 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sbndcode_wiki/commissioning/beampeak.png diff --git a/sbndcode_wiki/commissioning/beampeak.png b/sbndcode_wiki/commissioning/beampeak.png new file mode 100644 index 0000000000000000000000000000000000000000..3e83e45b3e6bbf9bac6d7019e925a9b209fdd683 GIT binary patch literal 13815 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 U{0K8Q+zYuWqa>Ym?e3HR1&KKW;Q#;t literal 0 HcmV?d00001 From 3998746f0e852ea107030f9bbf2439099f3ab6b5 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Jul 2022 08:39:24 -0500 Subject: [PATCH 0210/1437] Add files via upload --- sbndcode_wiki/commissioning/files/beampeak.png | Bin 0 -> 13815 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sbndcode_wiki/commissioning/files/beampeak.png diff --git a/sbndcode_wiki/commissioning/files/beampeak.png b/sbndcode_wiki/commissioning/files/beampeak.png new file mode 100644 index 0000000000000000000000000000000000000000..3e83e45b3e6bbf9bac6d7019e925a9b209fdd683 GIT binary patch literal 13815 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 U{0K8Q+zYuWqa>Ym?e3HR1&KKW;Q#;t literal 0 HcmV?d00001 From 32b0432cd2468a0a34eafa977964f2746e2dd495 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Jul 2022 08:39:46 -0500 Subject: [PATCH 0211/1437] Update Plots_and_Stuff --- sbndcode_wiki/commissioning/Plots_and_Stuff | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/commissioning/Plots_and_Stuff b/sbndcode_wiki/commissioning/Plots_and_Stuff index e775d6399..ccfb098e4 100644 --- a/sbndcode_wiki/commissioning/Plots_and_Stuff +++ b/sbndcode_wiki/commissioning/Plots_and_Stuff @@ -17,4 +17,4 @@ SBND Commissioning - plot repository ======================================================================== CRT sharp sharp plots and images -![muonpeak](files/beammuon.png) +![muonpeak](files/beampeak.png) From cddf1364d6ea1efc1f55c708ba01683aa70b5dfb Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Jul 2022 08:43:33 -0500 Subject: [PATCH 0212/1437] Rename Plots_and_Stuff to Plots_and_Stuff.md --- .../commissioning/{Plots_and_Stuff => Plots_and_Stuff.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sbndcode_wiki/commissioning/{Plots_and_Stuff => Plots_and_Stuff.md} (100%) diff --git a/sbndcode_wiki/commissioning/Plots_and_Stuff b/sbndcode_wiki/commissioning/Plots_and_Stuff.md similarity index 100% rename from sbndcode_wiki/commissioning/Plots_and_Stuff rename to sbndcode_wiki/commissioning/Plots_and_Stuff.md From e918df70565f3b21a2ab53b22b1f255e5b886077 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Jul 2022 08:50:16 -0500 Subject: [PATCH 0213/1437] Update Plots_and_Stuff.md --- sbndcode_wiki/commissioning/Plots_and_Stuff.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sbndcode_wiki/commissioning/Plots_and_Stuff.md b/sbndcode_wiki/commissioning/Plots_and_Stuff.md index ccfb098e4..931f4c074 100644 --- a/sbndcode_wiki/commissioning/Plots_and_Stuff.md +++ b/sbndcode_wiki/commissioning/Plots_and_Stuff.md @@ -17,4 +17,15 @@ SBND Commissioning - plot repository ======================================================================== CRT sharp sharp plots and images +================================= + +1. Beam muon peak June 2022 + - The BES is the “Beam Extraction Signal” that is sent to us from the accelerator complex and arrives roughly 333 microseconds before the beam arrives in the SBN-ND building. We are currently measuring the time of the CRT hits w.r.t. this reference, we will do something slightly different for physics running. + - The beam spill duration is 1.6 us. + - The CRT timing resolution is 1-2 ns per hit after all of the timing corrections due to cable length differences and the light propagation time in the fibers. We have not made any timing corrections in this plot, this is the raw CRT data. + - The trigger for this data requires a CRT hit in either the upstream or the downstream sharp (#) during the elongated window around the beam spill + - Plotted are the hits for the upstream # only + - This is roughly 12 hours of DAQ uptime + - We don’t yet have a number for the absolute rate of beam muons in this transverse area (2m x 2m square centered on the beam axis), but it is on the order of 1 per 1000 spills in the upstream only after subtracting the cosmic background. + ![muonpeak](files/beampeak.png) From febc8d7236613705d5e7ea7d51ebd2a9fb94212a Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Fri, 29 Jul 2022 12:16:25 -0500 Subject: [PATCH 0214/1437] Add files via upload --- .../commissioning/files/beampeak.png | Bin 13815 -> 27851 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sbndcode_wiki/commissioning/files/beampeak.png b/sbndcode_wiki/commissioning/files/beampeak.png index 3e83e45b3e6bbf9bac6d7019e925a9b209fdd683..722f4a75019c97bb9a89b2dd1ed36110474392b3 100644 GIT binary patch literal 27851 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�#Eusq&T( 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 K{E%Yt=YIitUXx+~ literal 13815 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 U{0K8Q+zYuWqa>Ym?e3HR1&KKW;Q#;t From 38ac55d77cabbf3710d5fea069b22e0dceb93168 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Mon, 1 Aug 2022 11:57:59 -0500 Subject: [PATCH 0215/1437] Update Boardreaders.md --- sbn_online_wiki/Boardreaders.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index 68c296e52..94ee50880 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -3,11 +3,12 @@ | Name | Lead developers | Documentation | Documentation Complete | | ---- | -------------- | ------------- | ---------------------- | | CRT | A.Aduszkiewicz, E.Yandel | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | -| PMT | A.Scarpelli | | | +| PMT | A.Scarpelli, D. Rivera, W. Badgett | | | | TPC | | | | | ICARUS trigger | J.Zettlemoyer, D.Torretta, W.Ketchum | | | -| SBND trigger | | | | +| SBND trigger | J. Sensenig| | | | WR | D.Torretta, W.Badgett, G.Lukhanin | [White Rabbit Timing System](WR/WhiteRabbit.md) | | +| spectdc | G.Lukhanin | | | | | | | | | EventBuilders | | | | | Dispatchers | | | | From 49539604751e783c4a1d2f177c2855377bc78a5d Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 3 Aug 2022 11:23:39 -0500 Subject: [PATCH 0216/1437] Update Boardreaders.md --- sbn_online_wiki/Boardreaders.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index 94ee50880..402949571 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -7,7 +7,7 @@ | TPC | | | | | ICARUS trigger | J.Zettlemoyer, D.Torretta, W.Ketchum | | | | SBND trigger | J. Sensenig| | | -| WR | D.Torretta, W.Badgett, G.Lukhanin | [White Rabbit Timing System](WR/WhiteRabbit.md) | | +| WR | D.Torretta, W.Badgett | [White Rabbit Timing System](WR/WhiteRabbit.md) | | | spectdc | G.Lukhanin | | | | | | | | | EventBuilders | | | | From 6a83a12348b51b15b09768abddebe712bfef5225 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 3 Aug 2022 18:29:27 -0400 Subject: [PATCH 0217/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 39ad0ae3c..857055ed6 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -116,6 +116,26 @@ ICARUS MC | --- | --- | --- | --- | calib tuple | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_04_calibtuples | | --- | --- | v09_37_02_07 | 1,909,017 | caf | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_07_caf | | --- | --- | --- | --- | flatcaf | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_07_flatcaf | +| nu+cosmics w/Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | # | reco2 | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | # | calib tuples | hist_IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | # | caf | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_caf | +| --- | --- | --- | # | flatcaf | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_flatcaf | +| NuMI nu+cosmics w/o Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | # | reco2 | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | # | caf | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_caf | +| BNB fullosc+cosmics w/Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | # | reco2 | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | # | caf | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_caf | +| BNB nue+cosmics w/Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | # | reco2 | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | # | caf | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_caf | +| NuMI full-osc+cosmics w/o Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | # | reco2 | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | # | caf | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_caf | +| NuMI nue+cosmics w/o Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | # | reco2 | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | # | caf | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_caf | | Cosmics, Lifetime 3.5 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_reco2 | | --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_calibtuples | | Cosmics, Lifetime 6 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_reco2 | From 8f8668fb5a31649b8166812a232ed1696381baa4 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 3 Aug 2022 22:39:27 -0400 Subject: [PATCH 0218/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 857055ed6..5bffd9317 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -116,26 +116,26 @@ ICARUS MC | --- | --- | --- | --- | calib tuple | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_04_calibtuples | | --- | --- | v09_37_02_07 | 1,909,017 | caf | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_07_caf | | --- | --- | --- | --- | flatcaf | IcarusProd_2022A_BNB_in-time_Cosmics_v09_37_02_07_flatcaf | -| nu+cosmics w/Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco1 | -| --- | --- | --- | # | reco2 | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco2 | -| --- | --- | --- | # | calib tuples | hist_IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco2 | -| --- | --- | --- | # | caf | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_caf | -| --- | --- | --- | # | flatcaf | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_flatcaf | -| NuMI nu+cosmics w/o Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_reco1 | -| --- | --- | --- | # | reco2 | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_reco2 | -| --- | --- | --- | # | caf | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_caf | -| BNB fullosc+cosmics w/Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_reco1 | -| --- | --- | --- | # | reco2 | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_reco2 | -| --- | --- | --- | # | caf | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_caf | -| BNB nue+cosmics w/Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_reco1 | -| --- | --- | --- | # | reco2 | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_reco2 | -| --- | --- | --- | # | caf | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_caf | -| NuMI full-osc+cosmics w/o Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_reco1 | -| --- | --- | --- | # | reco2 | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_reco2 | -| --- | --- | --- | # | caf | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_caf | -| NuMI nue+cosmics w/o Overburden | MC2022A | v09_37_02_04 | # | reco1 | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_reco1 | -| --- | --- | --- | # | reco2 | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_reco2 | -| --- | --- | --- | # | caf | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_caf | +| nu+cosmics w/Overburden | MC2022A | v09_37_02_04 | 437044 | reco1 | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | --- | reco2 | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | --- | calib tuples | hist_IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | 346060 | caf | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_caf | +| --- | --- | --- | --- | flatcaf | IcarusProd2022A_icarus_BNB_Nu_Cosmics_v09_37_02_04_flatcaf | +| NuMI nu+cosmics w/o Overburden | MC2022A | v09_37_02_04 | --- | reco1 | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | --- | reco2 | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | 628249 | caf | IcarusProd2022A_icarus_numi_nu_cosmics_v09_37_02_04_caf | +| BNB fullosc+cosmics w/Overburden | MC2022A | v09_37_02_04 | --- | reco1 | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | --- | reco2 | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | 194 | caf | IcarusProd_2022A_BNB_FullOsc_Cosmics_v09_37_02_04_caf | +| BNB nue+cosmics w/Overburden | MC2022A | v09_37_02_04 | --- | reco1 | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | --- | reco2 | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | 200 | caf | IcarusProd_2022A_BNB_Nue_Cosmics_v09_37_02_04_caf | +| NuMI full-osc+cosmics w/o Overburden | MC2022A | v09_37_02_04 | --- | reco1 | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | --- | reco2 | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | 3724 | caf | IcarusProd_2022A_NuMI_FullOsc_Cosmics_v09_37_02_04_caf | +| NuMI nue+cosmics w/o Overburden | MC2022A | v09_37_02_04 | --- | reco1 | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_reco1 | +| --- | --- | --- | --- | reco2 | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_reco2 | +| --- | --- | --- | 3554 | caf | IcarusProd_2022A_NuMI_Nue_Cosmics_v09_37_02_04_caf | | Cosmics, Lifetime 3.5 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_reco2 | | --- | --- | --- | --- | calib ntuples | IcarusProd_PuritySample_eLifetime3.5ms_NoSCE_v09_37_01_03p01_calibtuples | | Cosmics, Lifetime 6 ms, No SCE | MCP2021C | v09_37_01_03p01 | 24400 | reco2 | IcarusProd_PuritySample_eLifetime6ms_NoSCE_v09_37_01_03p01_reco2 | From 8322616bb15f328089a0f1476406f23ac3a30069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 5 Aug 2022 16:18:28 +0000 Subject: [PATCH 0219/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 5eb01cfd5..86a63c353 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_56_00` | Weekly release | [Release Notes](ReleaseNotes095600.html) |`v09_55_01` | Weekly release | [Release Notes](ReleaseNotes095501.html) |`v09_55_00` | Weekly release | [Release Notes](ReleaseNotes095500.html) |`v09_54_00` | Weekly release | [Release Notes](ReleaseNotes095400.html) From 9ab3e00c930afec0a4a7224d901000fd43af744b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 5 Aug 2022 16:24:50 +0000 Subject: [PATCH 0220/1437] Create ReleaseNotes095600.md --- sbndcode_wiki/Releases/ReleaseNotes095600.md | 75 ++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095600.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095600.md b/sbndcode_wiki/Releases/ReleaseNotes095600.md new file mode 100644 index 000000000..44eaae39e --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095600.md @@ -0,0 +1,75 @@ +--- +layout: page +title: ReleaseNotes095600 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.56.00 | 05 ago 2022 | [ReleaseNotes](ReleaseNotes095600.html) | +| --- | --- | --- | + + + +sbndcode v09_56_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_56_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_56_00/sbndcode-v09_56_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR289 + * Adds new features to the OpFlash t0 estimation. + * Update OpHit producer to fill StartTime and RiseTime attributes + * Add option in OpFlash producer to use the OpHit StartTime/RiseTime + * Add tool for drift coordinate estimation and light propagation time correction + * Add tools for better estimate the OpFlash t0 + * Flash barycenter is now calculated by a configurable external tool + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_56_00 +* larsoft v09_56_00 +* sbnd_data v01_14_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-08-05 Fran Nicolas : Merge branch 'release/v09_56_00' +* 2022-08-05 Fran Nicolas : Update to larsoft v09_56_00 +* 2022-08-05 Francisco Javier Nicolás-Arnaldos : Merge pull request #289 from SBNSoftware/feature/fnicolas_flasht0 +* 2022-08-05 Fran Nicolas : Solve bug in if statement +* 2022-08-05 Fran Nicolas : Add risetime fhicl configuration +* 2022-07-26 Fran Nicolas : Add description +* 2022-07-26 Fran Nicolas : Merge tag 'v09_55_01' into develop +* 2022-07-22 Fran Nicolas : update algo initialization +* 2022-07-21 Fran Nicolas : Update flash fcl +* 2022-07-21 Fran Nicolas : Flash barycenter calculated by external tool and redefinition of rise time +* 2022-07-21 Fran Nicolas : Rise time calculator tool now created in producer +* 2022-07-21 Fran Nicolas : Move flash barycenter function to a configurable tool +* 2022-06-22 Fran Nicolas : Add tpc member to LiteOpFlash type +* 2022-06-22 Fran Nicolas : Update cmake file +* 2022-06-22 Fran Nicolas : Update fash producer module +* 2022-06-22 Fran Nicolas : Add conf fhicls +* 2022-06-22 Fran Nicolas : Add tool for t0 estimation +* 2022-06-22 Fran Nicolas : Add tool for OpFlash t0 unbias +* 2022-06-22 Fran Nicolas : Fill StartTime and RiseTime attributes in OpHit module + +sbndutil +--------------------------------------------------- + +* 2022-08-05 Fran Nicolas : Merge tag 'v09_56_00' into develop +* 2022-08-05 Fran Nicolas : Merge branch 'release/v09_56_00' +* 2022-08-05 Fran Nicolas : Update to larsoft v09_56_00 +* 2022-07-26 Fran Nicolas : Merge tag 'v09_55_01' into develop From dc6f913a1070c797e42d8473898540acc826b28c Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Fri, 5 Aug 2022 13:41:43 -0500 Subject: [PATCH 0221/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index d4cbc8ab8..8b64a836f 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_01_00 as of 5/2022) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_02_00 as of 8/2022) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` @@ -192,7 +192,7 @@ export MRB_PROJECT=sbndaq ``` And then to checkout and build `sbndaq` and `sbndaq-artdaq` (most common situation) source the script below _from your work directory_: ```bash -setup sbndaq v1_01_00 -q e20:prof:s112 +setup sbndaq v1_02_00 -q e20:prof:s112 export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) echo sbndaq version: $my_sbndaq_version From bf1ef7e2a40778e89fe15708bc37a0a83508de45 Mon Sep 17 00:00:00 2001 From: lynnt-uchicago <71307529+lynnt-uchicago@users.noreply.github.com> Date: Fri, 5 Aug 2022 14:19:34 -0500 Subject: [PATCH 0222/1437] Add files via upload --- running_wvdump.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 running_wvdump.md diff --git a/running_wvdump.md b/running_wvdump.md new file mode 100644 index 000000000..990314eec --- /dev/null +++ b/running_wvdump.md @@ -0,0 +1,74 @@ +# Running Wavedump + +From either a VPN or from a gpvm, ssh into the gateway and PDS server on the sbnd user: + +``` bash + ssh sbnd@sbnd-gateway01.fnal.gov # or sbnd-gateway02 + ssh sbnd@sbnd-pds03.fnal.gov # or whichever pds server you're using +``` + +Gateway01 is for the DAQ, and Gateway02 is for slow control. Navigate to the folder with the wavedump info: + +``` bash + cd wavedump-3.9.0-trig + cd src +``` + +Open and check the config file, for example: `w1.txt`, to see if the PCI corresponds to the right link. The number in the textfile name should correspond to the LINK number. If PDS03 is connected to LINK 1 for example, you should find this line: + +``` text + OPEN PCI 1 0 0 +``` + +The first number after PCI should be equal to the LINK number. If you want to use a more interesting test signal, you can access the `TEST_PATTERN` line and change it to `YES` to use a triangle wave signal. + +The `caen` command... To run the wavedump, run (with the correct config file): + +``` bash + ./wavedump w1.txt +``` + +and press `s` to start. There are a few options while the wavedump is running: `q` to quit, `T` to turn on the software trigger, `p` to plot a single event (Note: the plot option doesn't work for an external input? tbd), and `P` to enable/disable the continuous plotting. Press "space" to view more options. + +## Change PLL (Phase Lock Loop) + +NOTE: When choosing the configuration file for the clock, make sure to choose the file for the **1730S** and _NOT_ the 1730. + +Similarly, ssh into the desired gateway and the pds server: + +``` bash + ssh sbnd@sbnd-gateway01.fnal.gov # or sbnd-gateway02 + ssh sbnd@sbnd-pds03.fnal.gov # or whichever pds server you're using +``` + +To start the GUI, use command `CAENUpgraderGUI` + +In the GUI: + +1. **To get Firmware Release:** + + a. choose board type: `V1730` (does not have "S") + + b. change the connection type: `OPTLINK` (not USB) + + c. check link number (`1` or `2`) + + d. all other options can be left as is (aka leave Board # empty) + + e. can click the "Get FW Rel" + +2. **To upgrade PLL:** + + a. choose board type: `V1730` + + b. PPL Upgrade File: (internal clock `/etc/CAENUpgrader/PLL/v1730S_vcxo500_ref50_ppl_out62_5.rbf`) & (external clock: `/home/nfs/sbnd/caen/v1730s/v1730S_vcxo500_ref10_pll_out62_5.rbf` ) + + c. change the connection type: `OPTLINK` (not USB) + + d. check link number (`1` or `2`) + + e. DO NOT TOUCH CONFIG OPTIONS + + f. can click "Upgrade" + +The syntax clock config file is as follows: ...`ref_ppl_out`... In otherwords, the internal clock config has 50 MHz in and 62.5 MHz out. From de878cc7255bb2b55fe59e993ae04a814a112c7b Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Sun, 7 Aug 2022 09:54:01 -0500 Subject: [PATCH 0223/1437] Create EventFilter.md --- sbndaq_oldwiki/EventFilter.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 sbndaq_oldwiki/EventFilter.md diff --git a/sbndaq_oldwiki/EventFilter.md b/sbndaq_oldwiki/EventFilter.md new file mode 100644 index 000000000..e16119355 --- /dev/null +++ b/sbndaq_oldwiki/EventFilter.md @@ -0,0 +1,15 @@ + + +branch: feature/sbnd_eventfilter +directory: /home/nfs/sbnd/DAQ_DevAreas/DAQ_6Aug2022_MS +repos: sbndaq_artdaq,sbndaq_artdaq_core +new files: sbndaq-artdaq/ArtModules/SBND/softwaretrigger/ + sbndaq-artdaq/ArtModules/SBND/MetricProducer_module.cc + sbndaq-artdaq-core/Obj/SBND/CRTmetric.h + sbndaq-artdaq-core/Obj/SBND/CRTmetric.cc + +status: code created Aug 7, 2022. Needs to be tested on CRT## data by putting producer in front of analysis module in fcl, + set verbose to true and see that hit counts are sensible. + + Currently doesn't build + From 46ccc2b3d0321a65a597a5ae67aa2ee7e0927ce6 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Sun, 7 Aug 2022 09:56:29 -0500 Subject: [PATCH 0224/1437] Update EventFilter.md --- sbndaq_oldwiki/EventFilter.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndaq_oldwiki/EventFilter.md b/sbndaq_oldwiki/EventFilter.md index e16119355..e890030c6 100644 --- a/sbndaq_oldwiki/EventFilter.md +++ b/sbndaq_oldwiki/EventFilter.md @@ -1,6 +1,7 @@ -branch: feature/sbnd_eventfilter +branch: feature/sbnd_eventfilter. as user sbnd + - last commit - never directory: /home/nfs/sbnd/DAQ_DevAreas/DAQ_6Aug2022_MS repos: sbndaq_artdaq,sbndaq_artdaq_core new files: sbndaq-artdaq/ArtModules/SBND/softwaretrigger/ From d5218506ec359c3874588e8920daf0745a954342 Mon Sep 17 00:00:00 2001 From: eyandel Date: Mon, 8 Aug 2022 14:22:33 -0500 Subject: [PATCH 0225/1437] Update EventFilter.md --- sbndaq_oldwiki/EventFilter.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndaq_oldwiki/EventFilter.md b/sbndaq_oldwiki/EventFilter.md index e890030c6..51ce52929 100644 --- a/sbndaq_oldwiki/EventFilter.md +++ b/sbndaq_oldwiki/EventFilter.md @@ -12,5 +12,6 @@ new files: sbndaq-artdaq/ArtModules/SBND/softwaretrigger/ status: code created Aug 7, 2022. Needs to be tested on CRT## data by putting producer in front of analysis module in fcl, set verbose to true and see that hit counts are sensible. - Currently doesn't build + Aug 7, 2022: does not build + Aug 8, 2022: Now builds! needs to be tested. From 0e2760c4a24befb88b1155ba741bf02fd4cdf6aa Mon Sep 17 00:00:00 2001 From: eyandel Date: Tue, 9 Aug 2022 12:17:14 -0500 Subject: [PATCH 0226/1437] Update EventFilter.md --- sbndaq_oldwiki/EventFilter.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndaq_oldwiki/EventFilter.md b/sbndaq_oldwiki/EventFilter.md index 51ce52929..a837db3fe 100644 --- a/sbndaq_oldwiki/EventFilter.md +++ b/sbndaq_oldwiki/EventFilter.md @@ -14,4 +14,5 @@ status: code created Aug 7, 2022. Needs to be tested on CRT## data by putting p Aug 7, 2022: does not build Aug 8, 2022: Now builds! needs to be tested. + Aug 9, 2022: Added to sbndcode (branch feature/eyandel_trigger) and tested/debugged. Now running smoothly on both simulated and real CRT## data. Analyzer and/or filter to look at metrics needed. From 3b36560c200bdb4c007d05132b2131ddc21064af Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 19:19:03 -0500 Subject: [PATCH 0227/1437] Update CAEN_DT5702_readout.md parameter values --- sbn_online_wiki/CRT/CAEN_DT5702_readout.md | 46 ++++++++++++++++++---- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md index 11db2dd00..e409d8cf0 100644 --- a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md +++ b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md @@ -62,13 +62,45 @@ For DAQInterface `known_boardreaders_list` needs to contain the following line: ### Overview A FHiCL file for CRT corresponds to a single Ethernet port, or a -single *chain* of FEBs connected to that port. - -The most important parameters: -- Number of FEB in the chain (`generated_fragments_per_event`) -- list of `fragment_ids` (see below). -- corresponding list of the same size determining if SiPM bias voltage on that FEB should be turned on (`TurnOnHV`) -- delay of PPS signal w.r.t. GPS-synchronised source (`PPS_offset_ns`). This allows fragment generator to correct for the delay introduced by cable lengths +single *chain* of FEBs connected to that port. + +#### Parameters to be specified for each boardreader: +- `generator` – set to: BernCRTData +- `fragment_type` – value used since 2021: BERNCRTV2 +- `ethernet_port` – name of port used to connect to chain of FEBs +- `generated_fragments_per_event` – must equal to number of FEB in the chain +- `firmware_flag` – can be ICARUS or SBND, to allow for differences in readout procedure and data format +- `feb_poll_ms` – time between consecutive FEB polls. +- `FEBBufferCapacity` – number of _fragments_ that can be stored for each FEB +- `fragment_period_ms` – time period covered by a single fragment +- `max_time_with_no_data_ms` – if a FEB registers no hits within the specified time, the boardreader prints a warning message. Default value: 1000 +- `max_tolerable_t0_` – if value of ts0 counter exceeds the specified value, the boardreader prints a warning message. Default value: 1'000'100'000 ns. Normally if PPS is received, ts0 restarts after reaching ~1e9, thus much higher value suggests issue with PPS + +Size of each of the following lists must equal to `generated_fragments_per_event`. The order does not need to correspond to physical order in the chain, but must be consistent between the lists: +- `fragment_ids` – list of FEBs connected in the chain. See fragment ID format documentation in SBN docdb 16111 (ICARUS) _(SBND draft: docdb 27088)_ +- `TurnOnHV` – set to true to allow bias voltage to be turned on on the corresponding FEB +- `PPS_offset_ns` – allows to input PPS delay due to signal propagation in cables, to allow boardreader to compute corrected timestamps. It is not critical to have this value correct, as the timestamp is recalculated from scratch later by the decoder + +Unused/historical parameters: +- `feb_restart_period_s` – if set to a value different than 0, boardeader will restart FEB readout each given number of seconds. Obsolete workaround for data corruption issue, eventually fixed in firmware +- `initial_delay_s` – if set to a value different than 0, boardreader will discard all fragments for the specified number of seconds at the beginning of the run. + +FEB configuration (see DT5702 documentation for details): +- `ProbeBitStream` – normally should be a string with 224 `0`s +- `FEBConfigurationMACxxx` – replace `xxx` with last 8 bits of FEB MAC address, without padding zero. The parameters are explained in DT5702 documentation, and interpreted by `BernCRTFEBConfiguration`. Note, for consistency `true` value always enables a setting and `false` disables it. The most important parameters are: + - `channel_configuration` – an array of 32 arrays with settings for each input SiPM channel. The columns in each array correspond to following parameters: + - time threshold ajustment 0–15 + - charge threshold adjustment 0–15 + - activate discriminator 0–1 (boolean) + - HV adjustment 0–255 + - high-high bias 0–1 (boolean) + - HG gain 0–63 + - LG gain 0–63 + - test HG 0–1 (boolean) + - test LG 0–1 (boolean) + - enable preamp 0–1 (boolean) + - `charge_threshold` and `time_threshold` SiPM input threshold 0–1023 +- `SlowControlBitStreamxxx` – alternative way to provide FEB configuration in original CAEN string format Individual FEB configuration, are included from separate files, individual for each FEB. These settings include: From 5856724297e3131f7ca3f6101bb9101a50268c09 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 19:47:55 -0500 Subject: [PATCH 0228/1437] Update CAEN_DT5702_readout.md Readout procedure description --- sbn_online_wiki/CRT/CAEN_DT5702_readout.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md index e409d8cf0..4edb0a166 100644 --- a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md +++ b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md @@ -123,16 +123,17 @@ based on the database information. -### Fragment ID +### Data format and readout procedure overview -The naming convention for CRT fragments is documented in - +A boardreader reads out all FEBs connected to given Ethernet port. Each FEB is distinguished by different fragment ID. -Fragment generator collects data from several FEBs connected in ethernet -chain. Therefore a single generator produces many different fragment -IDs. As of now, all of them need to be defined in the FHiCL file in a -table `fragment_ids`. +- Each time an FEB receives signal on SiPM input exceeding the threshold, or a signal on either T0 or T1 inputs, it triggers and reads out all SiPM inputs, and writes the data into an internal buffer. To avoid confusion with ICARUS trigger we call each readout a _hit_ +- periodically the boardreader _polls_ all data from the buffer into the server memory +- Data from a single hit is saved in `BernCRTHitV2` structure +- All hits from a poll are grouped in shorter periods of time. Hits in each period is saved in an _art fragment_ +- All fragments within the specified time window are saved in _fragment containers_, for each FEB. Note, this applies to `DAQInterface` only – `artdaqDriver` (a test utility) saves fragments individually. +`BernCRTTranslator` method `icarus::crt::BernCRTTranslator::getCRTData(std::vector const & frags)` recognizes whether a fragment is a fragment or fragment container, recognizes data format (for older formats used before 2021), and outputs it in a flat vector, convenient for analysis. ## Code From 2b24926b63ddd15cc1f1da124f7586ec38a7b2e1 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 19:49:32 -0500 Subject: [PATCH 0229/1437] Update CAEN_DT5702_readout.md --- sbn_online_wiki/CRT/CAEN_DT5702_readout.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md index 4edb0a166..afa1465c1 100644 --- a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md +++ b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md @@ -148,16 +148,16 @@ A boardreader reads out all FEBs connected to given Ethernet port. Each FEB is d ### Status -(10/08/21) +(8/1/22) -- Board reader is fully functional +- Board reader fully functional - CRT measures absolute time of each hit based on nanosecond time measured by FEB - and server time of the polls; see: https://sbn-docdb.fnal.gov/cgi-bin/private/ShowDocument?docid=16108 for details + and server time of the polls; see: https://sbn-docdb.fnal.gov/cgi-bin/private/ShowDocument?docid=16108 for details To do: -- Cross check timestamps with DAQ components -- Prepare framework to produce hardware configuration from the DB +- Ongoing cross checks timestamps between CRT and other DAQ components +- Ongoing works on further improvements of FEB firmware From b0ad194662e26eb59e7d1a8a24ff2b50d728b883 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 20:11:10 -0500 Subject: [PATCH 0230/1437] Update CAEN_DT5702_readout.md --- sbn_online_wiki/CRT/CAEN_DT5702_readout.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md index afa1465c1..ed2e22c91 100644 --- a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md +++ b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md @@ -123,7 +123,7 @@ based on the database information. -### Data format and readout procedure overview +## Data format and readout procedure overview A boardreader reads out all FEBs connected to given Ethernet port. Each FEB is distinguished by different fragment ID. From 2eb4aeb5179f9bdfaf6c0d0782057b994e9f3022 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 20:14:12 -0500 Subject: [PATCH 0231/1437] Update CAEN_DT5702_readout.md --- sbn_online_wiki/CRT/CAEN_DT5702_readout.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md index ed2e22c91..5908d00c0 100644 --- a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md +++ b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md @@ -85,7 +85,7 @@ Unused/historical parameters: - `feb_restart_period_s` – if set to a value different than 0, boardeader will restart FEB readout each given number of seconds. Obsolete workaround for data corruption issue, eventually fixed in firmware - `initial_delay_s` – if set to a value different than 0, boardreader will discard all fragments for the specified number of seconds at the beginning of the run. -FEB configuration (see DT5702 documentation for details): +FEB configuration (see DT5702 documentation for details, SBN docdb 24843): - `ProbeBitStream` – normally should be a string with 224 `0`s - `FEBConfigurationMACxxx` – replace `xxx` with last 8 bits of FEB MAC address, without padding zero. The parameters are explained in DT5702 documentation, and interpreted by `BernCRTFEBConfiguration`. Note, for consistency `true` value always enables a setting and `false` disables it. The most important parameters are: - `channel_configuration` – an array of 32 arrays with settings for each input SiPM channel. The columns in each array correspond to following parameters: From 4655b1a104081f57e515a4bbdced1e44b3ae523c Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 20:15:21 -0500 Subject: [PATCH 0232/1437] Add files via upload --- sbn_online_wiki/CRT/crt_data_format 2.pdf | Bin 0 -> 8550 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sbn_online_wiki/CRT/crt_data_format 2.pdf diff --git a/sbn_online_wiki/CRT/crt_data_format 2.pdf b/sbn_online_wiki/CRT/crt_data_format 2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b47955635f8711a1704a04aca851d97cba9afaf7 GIT binary patch literal 8550 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 Ig#qOM0fveCNdN!< literal 0 HcmV?d00001 From 857b4bc1c77875f88c1d160f4e9aba920d5ecf01 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 20:18:04 -0500 Subject: [PATCH 0233/1437] Add files via upload --- sbn_online_wiki/CRT/crt_data_format_2.png | Bin 0 -> 21619 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sbn_online_wiki/CRT/crt_data_format_2.png diff --git a/sbn_online_wiki/CRT/crt_data_format_2.png b/sbn_online_wiki/CRT/crt_data_format_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8defe9b81e08c777ff79e4bfd583e8f135987706 GIT binary patch literal 21619 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 literal 0 HcmV?d00001 From 2f87b0d5c0dfec39301d715cc2541e19b1febea5 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 20:23:07 -0500 Subject: [PATCH 0234/1437] Delete crt_data_format 2.pdf --- sbn_online_wiki/CRT/crt_data_format 2.pdf | Bin 8550 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 sbn_online_wiki/CRT/crt_data_format 2.pdf diff --git a/sbn_online_wiki/CRT/crt_data_format 2.pdf b/sbn_online_wiki/CRT/crt_data_format 2.pdf deleted file mode 100644 index b47955635f8711a1704a04aca851d97cba9afaf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8550 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 Ig#qOM0fveCNdN!< From d631b8b67b1e6fac39670a644661128970f6d993 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 11 Aug 2022 20:23:52 -0500 Subject: [PATCH 0235/1437] Update CAEN_DT5702_readout.md --- sbn_online_wiki/CRT/CAEN_DT5702_readout.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md index 5908d00c0..4274940a3 100644 --- a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md +++ b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md @@ -133,6 +133,9 @@ A boardreader reads out all FEBs connected to given Ethernet port. Each FEB is d - All hits from a poll are grouped in shorter periods of time. Hits in each period is saved in an _art fragment_ - All fragments within the specified time window are saved in _fragment containers_, for each FEB. Note, this applies to `DAQInterface` only – `artdaqDriver` (a test utility) saves fragments individually. +The format of CRT data saved in a single event is visualized in the following diagram: +![CRT data format diagram](crt_data_format_2.png) + `BernCRTTranslator` method `icarus::crt::BernCRTTranslator::getCRTData(std::vector const & frags)` recognizes whether a fragment is a fragment or fragment container, recognizes data format (for older formats used before 2021), and outputs it in a flat vector, convenient for analysis. From fc8837f70622e380431e6dd56ddfe21975e6e7a7 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Sun, 14 Aug 2022 14:47:32 +0200 Subject: [PATCH 0236/1437] script to check the number of online raw files --- .../scripts/checkRawFilesOnlineStatus.sh | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh diff --git a/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh b/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh new file mode 100644 index 000000000..3d30eb95f --- /dev/null +++ b/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh @@ -0,0 +1,107 @@ +#################################################################### +# script to check how many raw files are staged/cached/online # +# based on the run number and stream name # +# written by: Maya Wospakrik # +# # +# Note: # +# We have 8 streams from run 8460: # +# bnbmajority, bnbminbias, numimajority, numiminbias, # +# offbeambnbmajority, offbeambnbminbias, offbeamnumimajority, # +# offbeamnumiminbias # +# # +# We have 4 streams before run 8460: # +# bnb, numi, offbeambnb, offbeamnumi # +# # +# Note that we also have the 'unknown' stream which isn't # +# considered in the keepup processing, but this will be included # +# in the accounting of the stream 'all' input arguments # +# # +# How to run the script: # +# sh checkRawFilesOnlineStatus.sh -r -s # +# # +# e.g. sh checkRawFilesOnlineStatus.sh 8460 bnbmajority # +#################################################################### + +#! /bin/bash + +############################################################ +# Help # +############################################################ +Help() +{ + # Display Help + echo "To run checkRawFilesOnlineStatus.sh script." + echo + echo "Syntax: sh checkRawFilesOnlineStatus.sh [-r -s | -h ]" + echo "options:" + echo "r Enter run number. Default is run 8460." + echo "s Enter stream name. Default is 'all'." + echo "h Print this Help menu." + echo +} + +############################################################ +# Process the input options. # +############################################################ + +# Set variables +run=8460 +stream=all + +# Get the options +while getopts ":hr:s:" option; do + case $option in + h) # display Help + Help + exit;; + r) # Enter a run number + run=$OPTARG;; + s) # Enter a stream name + stream=$OPTARG;; + \?) # Invalid option + echo "Error: Invalid option" + exit;; + esac +done + +# break run number into subfolders +r1=`echo ${run:0:2}` +r2=`echo ${run:2:2}` + +# if stream name is specified as all, use wildcard +if [[ "${stream}" == "all" ]]; then + stream="*" +fi + +# make sure that any temporary outputfiles are removed before appending the new ones +# might exist when script is not run to completion +if [[ -f "listtotalrawfiles.temp" ]]; then + rm listtotalrawfiles.temp + rm listofonlinefiles.temp +fi + +# find files with the appropriate run number and stream +find /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/v1_01_00/icarus_daq_v1_01_00/daq/00/00/${r1}/${r2} -type f -name "data*.root" | awk -Fdata_dl '{print "data_dl"$2}' >& listtotalrawfiles.temp + +# count total available files on tape area +n_total=`wc -l listtotalrawfiles.temp | awk '{print $1}'` + +# check if files online +for f in `cat listtotalrawfiles.temp`; do + cat /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/v1_01_00/icarus_daq_v1_01_00/daq/00/00/${r1}/${r2}/".(get)(${f})(locality)" | grep ONLINE >> listofonlinefiles.temp; +done + +# count how many are online +n_online=`wc -l listofonlinefiles.temp | awk '{print $1}'` + +# translate back the stream name +if [[ "${stream}" == "*" ]]; then + stream="all" +fi + +# print result +echo "Online files for run number: ${run} and stream name: ${stream}: ${n_online} files out of available ${n_total} files" + +# clear the temporary output files +rm listtotalrawfiles.temp +rm listofonlinefiles.temp From 9d253bf92ea678b56dc9a623cfe774629686cb43 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Sun, 14 Aug 2022 09:49:53 -0500 Subject: [PATCH 0237/1437] Update EventFilter.md --- sbndaq_oldwiki/EventFilter.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndaq_oldwiki/EventFilter.md b/sbndaq_oldwiki/EventFilter.md index a837db3fe..4a8d45c09 100644 --- a/sbndaq_oldwiki/EventFilter.md +++ b/sbndaq_oldwiki/EventFilter.md @@ -8,6 +8,7 @@ new files: sbndaq-artdaq/ArtModules/SBND/softwaretrigger/ sbndaq-artdaq/ArtModules/SBND/MetricProducer_module.cc sbndaq-artdaq-core/Obj/SBND/CRTmetric.h sbndaq-artdaq-core/Obj/SBND/CRTmetric.cc +setup script: ~sbnd/launchdaq_softwaretrig.sh status: code created Aug 7, 2022. Needs to be tested on CRT## data by putting producer in front of analysis module in fcl, set verbose to true and see that hit counts are sensible. From f94ebc1fea4bc4d96307d685783597265a808131 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Mon, 15 Aug 2022 12:51:10 +0200 Subject: [PATCH 0238/1437] update MCproduction.md w/ script to check prestage --- icaruscode_wiki/samples/MCproduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/icaruscode_wiki/samples/MCproduction.md b/icaruscode_wiki/samples/MCproduction.md index 566f961d8..f67d9e087 100644 --- a/icaruscode_wiki/samples/MCproduction.md +++ b/icaruscode_wiki/samples/MCproduction.md @@ -77,7 +77,7 @@ The action of copying all of the needed files from tape to disk (dCache) is call Instructions on how to do that are in the [old ICARUS wiki](https://cdcvs.fnal.gov/redmine/projects/icarus-production/wiki/How_to_pre-stage_files_and_check_if_you_need_to_do_it) at https://cdcvs.fnal.gov/redmine/projects/icarus-production/wiki/How_to_pre-stage_files_and_check_if_you_need_to_do_it. - +Use [this script](scripts/checkRawFilesOnlineStatus.sh) to check how many raw data files are online given the run number and stream name. ### SAM query setup ################################################################ From 79cc05fc3a71b7f1976d5eb74faa3d6c2158d8e3 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 17 Aug 2022 15:50:07 -0500 Subject: [PATCH 0239/1437] Update Acronym_List.md --- SBNYoung/Acronym_List.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SBNYoung/Acronym_List.md b/SBNYoung/Acronym_List.md index 8b73f1e8a..1cb4a7517 100644 --- a/SBNYoung/Acronym_List.md +++ b/SBNYoung/Acronym_List.md @@ -10,7 +10,7 @@ title: Acronyms - **SBN** Short Baseline Neutrino (multi-detector physics program) - **SBND** Short Baseline Near Detector - **ICARUS** Imaging Cosmics And Rare Underground Signals -- **FNAL** Fermilab National Accelerator Laboratory +- **FNAL** Fermi National Accelerator Laboratory, Fermilab - **BNB** Booster Neutrino Beam (the Fermilab neutrino beam on which SBN operates) - **NuMI** Neutrinos at the Main Injector (a higher energy Fermilab beam which will also provide some off-axis data) - **TPC** Time Projection Chamber From 8e7ca6010f88fd0e4dec4c1d51b954e97476dde3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 18 Aug 2022 12:22:20 +0000 Subject: [PATCH 0240/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 86a63c353..793b4285c 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_56_00_01` | Weekly release | [Release Notes](ReleaseNotes09560001.html) |`v09_56_00` | Weekly release | [Release Notes](ReleaseNotes095600.html) |`v09_55_01` | Weekly release | [Release Notes](ReleaseNotes095501.html) |`v09_55_00` | Weekly release | [Release Notes](ReleaseNotes095500.html) From 59ecd2ac5e0976daf5c18bc28e55623671c9fc95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 18 Aug 2022 12:28:43 +0000 Subject: [PATCH 0241/1437] Create ReleaseNotes09560001.md --- .../Releases/ReleaseNotes09560001.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09560001.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09560001.md b/sbndcode_wiki/Releases/ReleaseNotes09560001.md new file mode 100644 index 000000000..7ba210c13 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09560001.md @@ -0,0 +1,64 @@ +--- +layout: page +title: ReleaseNotes09560001 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.56.00.01 | 18 ago 2022 | [ReleaseNotes](ReleaseNotes09560001.html) | +| --- | --- | --- | + + + +sbndcode v09_56_00_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_56_00_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_56_00_01/sbndcode-v09_56_00_01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- +* sbndcode PR294 + * Update ci_test reference values + * Reflecting current memory usage + * Also updated ref values for sequential tests + +Bug fixes +--------------------------------------------------- +* sbndcode PR292 + * fix missing pmt pairs + +Updated dependencies +--------------------------------------------------- +* sbncode v09_56_00_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-08-18 Fran Nicolas : Merge branch 'release/v09_56_00_01' +* 2022-08-18 Fran Nicolas : Update to version v09_56_00_01 +* 2022-08-18 Francisco Javier Nicolás-Arnaldos : Merge pull request #292 from SBNSoftware/feature/eyandel_crtdaqsim +* 2022-08-18 Francisco Javier Nicolás-Arnaldos : Merge pull request #294 from SBNSoftware/henrylay97-patch-1 +* 2022-08-17 Henry Lay : one last time for the people at the back... +* 2022-08-16 Henry Lay : pls be the last +* 2022-08-16 Henry Lay : and again... +* 2022-08-16 Henry Lay : Widen a few limits +* 2022-08-16 Henry Lay : Give seq tests more sensible resource requests +* 2022-08-12 Henry Lay : Update ci_tests.cfg +* 2022-08-09 eyandel : fix missing pmt pairs +* 2022-08-05 Fran Nicolas : Merge tag 'v09_56_00' into develop + +sbndutil +--------------------------------------------------- + +* 2022-08-18 Fran Nicolas : Merge tag 'v09_56_00_01' into develop +* 2022-08-18 Fran Nicolas : Merge branch 'release/v09_56_00_01' +* 2022-08-18 Fran Nicolas : Update to version v09_56_00_01 +* 2022-08-05 Fran Nicolas : Merge tag 'v09_56_00' into develop From d12daef75bdbd21c634a3a02fd0a49146e790499 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Thu, 18 Aug 2022 14:54:30 +0200 Subject: [PATCH 0242/1437] adding ICARUS 1D drift simulation waveform sample --- sbn/sbnprod_wiki/sample.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 5bffd9317..e52771127 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -104,6 +104,8 @@ ICARUS MC | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| ICARUS intime cosmics 1D drift simulation waveform files | MC2022A | v09_51_00 | 217,332 | reco2 | IcarusProd_2022A_Intime_Cosmic_WF_v09_51_00_reco2 | +| --- | --- | --- | 204,630 | calib tuple | IcarusProd_2022A_Intime_Cosmic_WF_v09_51_00_calibtuples | | NUMI in-time cosmics with Overburden | MC2022A | v09_37_02_04 | 809,054 | reco2 | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_04_reco2 | | --- | --- | --- | --- | calib tuple | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_04_calibtuples | | --- | --- | v09_37_02_07 | 809,054 | caf | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_07_caf | From e70fa0419b255bfc77348d4fd8398dec968a51a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Wed, 31 Aug 2022 15:37:35 +0000 Subject: [PATCH 0243/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 793b4285c..29214c982 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_58_00` | Weekly release | [Release Notes](ReleaseNotes095800.html) |`v09_56_00_01` | Weekly release | [Release Notes](ReleaseNotes09560001.html) |`v09_56_00` | Weekly release | [Release Notes](ReleaseNotes095600.html) |`v09_55_01` | Weekly release | [Release Notes](ReleaseNotes095501.html) From 06df444c41220fa7539fa6c4453ac332de08593b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Wed, 31 Aug 2022 15:38:06 +0000 Subject: [PATCH 0244/1437] Create ReleaseNotes095800.md --- sbndcode_wiki/Releases/ReleaseNotes095800.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095800.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095800.md b/sbndcode_wiki/Releases/ReleaseNotes095800.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095800.md @@ -0,0 +1 @@ + From e1432ad47dc7d670581c31b84c3a0e4465262b1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Wed, 31 Aug 2022 16:17:45 +0000 Subject: [PATCH 0245/1437] Update ReleaseNotes095800.md --- sbndcode_wiki/Releases/ReleaseNotes095800.md | 54 ++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/sbndcode_wiki/Releases/ReleaseNotes095800.md b/sbndcode_wiki/Releases/ReleaseNotes095800.md index 8b1378917..4cff8cb00 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes095800.md +++ b/sbndcode_wiki/Releases/ReleaseNotes095800.md @@ -1 +1,55 @@ +--- +layout: page +title: ReleaseNotes095800 +toc: true +--- +----------------------------------------------------------------------------- +| v09.58.00 | 31 ago 2022 | [ReleaseNotes](ReleaseNotes095800.html) | +| --- | --- | --- | + + + +sbndcode v09_58_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_58_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_58_00/sbndcode-v09_58_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* XARAPUCA's SimpleFlashAlgo chain with hits from deconvolved waveforms + * Tune of the SimpleFlashAlgo for XARAPUCA deconvolved signals. + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_58_00 +* larsoft v09_58_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-08-31 Fran Nicolas : Merge branch 'release/v09_58_00' +* 2022-08-31 Fran Nicolas : Update to larsoft v09_58_00 +* 2022-08-31 Francisco Javier Nicolás-Arnaldos : Merge pull request #295 from SBNSoftware/feature/rodrigoa_XARAPUCA_simpleflash +* 2022-08-29 Rodrigo Alvarez Garrote : XARAPUCA's SimpleFlashAlgo chain with hits from deconvolved waveforms +* 2022-08-18 Fran Nicolas : Merge tag 'v09_56_00_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-08-31 Fran Nicolas : Merge tag 'v09_58_00' into develop +* 2022-08-31 Fran Nicolas : Merge branch 'release/v09_58_00' +* 2022-08-31 Fran Nicolas : Update to larsoft v09_58_00 +* 2022-08-18 Fran Nicolas : Merge tag 'v09_56_00_01' into develop From b3bd2d2eec23dd17725aa98a70c47136a5a30d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 5 Sep 2022 15:18:44 +0000 Subject: [PATCH 0246/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 29214c982..1ea3182a8 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_58_01` | Weekly release | [Release Notes](ReleaseNotes095801.html) |`v09_58_00` | Weekly release | [Release Notes](ReleaseNotes095800.html) |`v09_56_00_01` | Weekly release | [Release Notes](ReleaseNotes09560001.html) |`v09_56_00` | Weekly release | [Release Notes](ReleaseNotes095600.html) From f108a67836621451b07c5369ad8aea3982761762 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 5 Sep 2022 15:21:32 +0000 Subject: [PATCH 0247/1437] Create ReleaseNotes095801.md --- sbndcode_wiki/Releases/ReleaseNotes095801.md | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095801.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095801.md b/sbndcode_wiki/Releases/ReleaseNotes095801.md new file mode 100644 index 000000000..462b6ac76 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095801.md @@ -0,0 +1,51 @@ +--- +layout: page +title: ReleaseNotes095801 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.58.01 | 05 sep 2022 | [ReleaseNotes](ReleaseNotes095801.html) | +| --- | --- | --- | + + + +sbndcode v09_58_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_58_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_58_01/sbndcode-v09_58_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_58_01 +* larsoft v09_58_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-09-05 Fran Nicolas : Merge branch 'release/v09_58_01' +* 2022-09-05 Fran Nicolas : Update to larsoft v09_58_01 +* 2022-08-31 Fran Nicolas : Merge tag 'v09_58_00' into develop + +sbndutil +--------------------------------------------------- + +* 2022-09-05 Fran Nicolas : Merge tag 'v09_58_01' into develop +* 2022-09-05 Fran Nicolas : Merge branch 'release/v09_58_01' +* 2022-09-05 Fran Nicolas : Update to larsoft v09_58_01 +* 2022-08-31 Fran Nicolas : Merge tag 'v09_58_00' into develop From 349682c576b2e44508d620a12a088e936301edf5 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Tue, 6 Sep 2022 19:32:57 -0700 Subject: [PATCH 0248/1437] Replaced art-deprecated getByLabel() with getProduct() --- sbn/codingconv/CodingConventionsExplained.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sbn/codingconv/CodingConventionsExplained.md b/sbn/codingconv/CodingConventionsExplained.md index 4c2f76087..9f847c008 100644 --- a/sbn/codingconv/CodingConventionsExplained.md +++ b/sbn/codingconv/CodingConventionsExplained.md @@ -429,7 +429,7 @@ wrong results. the case. The most common ones are: * if no _art_ associations are needed: ```cpp - auto const& hits = event.getByLabel>(fHitTag); + auto const& hits = event.getProduct>(fHitTag); ``` * if associations are needed, and therefore `art::Ptr` or `art::Handle`: ```cpp @@ -599,9 +599,9 @@ It should be used judiciously (and sparsely). * statements that already spell out the type elsewhere: ```cpp auto const& vertices - = event.getByLabel>(vertexTag); + = event.getProduct>(vertexTag); ``` - In this case `art::Event::getByLabel()` (which should be reasonably + In this case `art::Event::getProduct()` (which should be reasonably well known anyway) returns the type written in its template argument. * in lambda types, of course, `auto` is acceptable when no other option is available: ```cpp @@ -981,12 +981,12 @@ There are well known patterns that prevent unnecessary copies. [`[CF.111]`](#CF111) **[++]** It is **required** to avoid copies of return values. For example: ```cpp - auto digits = event.getByLabel>(WaveformTag); // BAD + auto digits = event.getProduct>(WaveformTag); // BAD ``` should become ```cpp auto const& digits - = event.getByLabel>(WaveformTag); + = event.getProduct>(WaveformTag); ``` to avoid copying the returned vector. From 2b4c57d5176da936e46cc17bf65ec8d874c79066 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Fri, 9 Sep 2022 11:32:00 -0700 Subject: [PATCH 0249/1437] Update The_ICARUS_Guide_to_using_LArSoft.md --- .../The_ICARUS_Guide_to_using_LArSoft.md | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/icaruscode_wiki/The_ICARUS_Guide_to_using_LArSoft.md b/icaruscode_wiki/The_ICARUS_Guide_to_using_LArSoft.md index c755e03bd..a529fd466 100644 --- a/icaruscode_wiki/The_ICARUS_Guide_to_using_LArSoft.md +++ b/icaruscode_wiki/The_ICARUS_Guide_to_using_LArSoft.md @@ -12,10 +12,11 @@ The ICARUS Guide to using LArSoft > DISCLAIMER: Due to rapid development this page can become out of date > at times. As well, remember that unknown problems don\'t materialize -> solutions out of the ether: if you have a problem? write an e-mail -> **and** [open a ticket -> here](https://cdcvs.fnal.gov/redmine/projects/icaruscode/issues/new) -> (you need to be logged in to Redmine). +> solutions out of the ether: do you have a problem? start by writing in +> Slack channel [`#icarus_general`](https://shortbaseline.slack.com/archives/C014TBQ9P6J) +> (or another more appropriate one in [workspace SBN](https://shortbaseline.slack.com)); +> optionally also [open a GitHub issue in `icaruscode`](https://github.com/SBNSoftware/SBNSoftware.github.io/issues) +> or where appropriate. The following is a quick guide (based largely on MicroBooNE experience and stolen from SBNDcode wiki) to the things you need to do in order to @@ -37,7 +38,7 @@ run and develop applications in LArSoft. The following assumes: second step. - You have a working knowledge of UNIX. - You are using the `bash` shell (`zsh` is not well supported to - date^[1]. + date¹). @@ -123,6 +124,9 @@ The links below haven\'t been updated yet: ------------------------------------------------------------------------ -^1^ Whenever in Redmine wiki you see the claim \"to date\", you can -verify when that claim was written by exploring the *History* of that -page, via the link on the top right of the page itself. +¹ Whenever in GitHub wiki you see the claim "to date", you can +verify when that claim was written by exploring the commit history of that +page. You'll need to switch to the edit mode ("Improve this page" on top right), +then take note of the name of the file, click on the directory that contains it +(the link is shown by GitHub just above the editing box) and then look for the +file in the listing. From 572ad46fd8144f1e3da7b180c5f6fd04326b6a16 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Sep 2022 14:00:30 +0000 Subject: [PATCH 0250/1437] Create sbncode_sbnana_v09_37_02_00.md --- .../Releases/sbncode_sbnana_v09_37_02_00.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_00.md new file mode 100644 index 000000000..cadd67cfb --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_00.md @@ -0,0 +1,38 @@ +--- +layout: page +title: sbncode_sbnana_v09_37_02_00 +toc: true +--- + +sbncode_sbnana_v09_37_02_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +23 March 2022 + +Purpose +--------------------------------------------------- +* SBN2022A Production release + +New features +--------------------------------------------------- +SBN2020A production release of sbncode and sbnana (v09_37_02_00 in cvmfs SBN2022A in GitHub) has been cut and distributed. + +* sbncode (v09_4_00): + + Using: + * larsoft v09_37_01_02 + * sbnobj v09_12_12 + * sbnanaobj v09_17_06_03 + * sbndaq_artdaq_core v1_00_00of2 + + Includes: + * + +Extra info +--------------------------------------------------- From 1a74f9a7a372d00df7949b6b2e9e2f615c748690 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Sep 2022 14:04:49 +0000 Subject: [PATCH 0251/1437] Update and rename sbncode_sbnana_v09_37_02_00.md to sbncode_v09_37_02_00.md --- ...nana_v09_37_02_00.md => sbncode_v09_37_02_00.md} | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) rename AnalysisInfrastructure/ReleaseManagement/Releases/{sbncode_sbnana_v09_37_02_00.md => sbncode_v09_37_02_00.md} (75%) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_00.md similarity index 75% rename from AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_00.md rename to AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_00.md index cadd67cfb..dad0ff9e1 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_00.md @@ -1,10 +1,10 @@ --- layout: page -title: sbncode_sbnana_v09_37_02_00 +title: sbncode_v09_37_02_00 toc: true --- -sbncode_sbnana_v09_37_02_00 Release Notes +sbncode_v09_37_02_00 Release Notes ======================================================================================= [List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) @@ -21,9 +21,9 @@ Purpose New features --------------------------------------------------- -SBN2020A production release of sbncode and sbnana (v09_37_02_00 in cvmfs SBN2022A in GitHub) has been cut and distributed. +SBN2020A production release of sbncode (tags v09_37_02_00 in cvmfs, SBN2022A in GitHub) has been cut and distributed. -* sbncode (v09_4_00): +* sbncode (v09_37_02_00): Using: * larsoft v09_37_01_02 @@ -31,8 +31,9 @@ SBN2020A production release of sbncode and sbnana (v09_37_02_00 in cvmfs SBN2022 * sbnanaobj v09_17_06_03 * sbndaq_artdaq_core v1_00_00of2 - Includes: - * + + Using: + * Extra info --------------------------------------------------- From 200af9589c6a316655d81ef743f980af4da4ecd4 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Sep 2022 14:11:45 +0000 Subject: [PATCH 0252/1437] Create sbncode_sbnana_v09_37_02_01.md --- .../Releases/sbncode_sbnana_v09_37_02_01.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md new file mode 100644 index 000000000..b6155623e --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbncode_v09_37_02_01 +toc: true +--- + +sbncode_sbnana_v09_37_02_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +29 March 2022 + +Purpose +--------------------------------------------------- +* SBN2022A production patch release + +New features +--------------------------------------------------- +A procduction patch release of sbncode and sbnana (v09_37_02_01) has been cut and distributed. +update for fix in sbnanaobj; new release v09_37_02_01 for SBN 2022A +* sbncode (v09_37_02_01): + Using: + * sbnanaobj v09_17_06_04 + +* sbnana (v09_37_02_01): + Using: + * sbnanaobj v09_17_06_04 + + + +Extra info +--------------------------------------------------- From 85d88e5e683b9b68ea56f3457d88586143cb13fe Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Sep 2022 14:13:05 +0000 Subject: [PATCH 0253/1437] Update and rename sbncode_v09_37_02_00.md to sbncode_v09_37_02.md --- .../{sbncode_v09_37_02_00.md => sbncode_v09_37_02.md} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename AnalysisInfrastructure/ReleaseManagement/Releases/{sbncode_v09_37_02_00.md => sbncode_v09_37_02.md} (78%) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02.md similarity index 78% rename from AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_00.md rename to AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02.md index dad0ff9e1..7d8647107 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02.md @@ -1,10 +1,10 @@ --- layout: page -title: sbncode_v09_37_02_00 +title: sbncode_v09_37_02 toc: true --- -sbncode_v09_37_02_00 Release Notes +sbncode_v09_37_02 Release Notes ======================================================================================= [List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) @@ -21,9 +21,9 @@ Purpose New features --------------------------------------------------- -SBN2020A production release of sbncode (tags v09_37_02_00 in cvmfs, SBN2022A in GitHub) has been cut and distributed. +SBN2020A production release of sbncode (tags v09_37_02 in cvmfs, SBN2022A in GitHub) has been cut and distributed. -* sbncode (v09_37_02_00): +* sbncode (v09_37_02): Using: * larsoft v09_37_01_02 From 79997bf60f6153d4bf4ac0f6cccd6e7e553e97ce Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Sep 2022 14:25:24 +0000 Subject: [PATCH 0254/1437] Create sbncode_v09_37_02_02.md --- .../Releases/sbncode_v09_37_02_02.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_02.md new file mode 100644 index 000000000..58d5367c0 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_02.md @@ -0,0 +1,41 @@ +--- +layout: page +title: sbncode_v09_37_02_02 +toc: true +--- + +sbncode_v09_37_02_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +08 April 2022 + +Purpose +--------------------------------------------------- +* SBN2022A production patch release + +New features +--------------------------------------------------- +A production patch release of sbncode (v09_37_02_02) has been cut and distributed. + +* sbncode (v09_37_02_02): + Using: + * larsoft v09_47_00 + * sbnanaobj v09_17_06_05 + + Includes: + * SBNSoftware/sbncode Saving CRT T0 instead of T1 in CAF #251 + * SBNSoftware/sbncode CRUMBS #250 + * SBNSoftware/sbnanaobj Adding t0 ana t1 in SRCRTHit #58 + * SBNSoftware/sbnanaobj Update to sproxy v00.34 #57 + * SBNSoftware/sbnanaobj Add enums to classes_def #54 + + + +Extra info +--------------------------------------------------- From 3f5ad9e945b392a02ebfec6ce1eeb1f6c89913db Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Sep 2022 14:25:34 +0000 Subject: [PATCH 0255/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 8280ee632..643432c04 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,11 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_37_02_02` | 'sbncode' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_02) +|`v09_47_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_47_00) +|`v09_37_02_01` | 'sbncode/sbnana' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01) +|`SBN2022A` | 'sbncode' SBN2022A production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02) +|`v09_46_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_46_00) |`v09_45_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_45_00) |`v09_44_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_44_00_01) |`v09_44_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_44_00) From 39b190f080ddb8451a169c20bc6e3719e0a9880d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 12 Sep 2022 18:13:54 +0000 Subject: [PATCH 0256/1437] Create ReleaseNotes095802.md --- sbndcode_wiki/Releases/ReleaseNotes095802.md | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095802.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095802.md b/sbndcode_wiki/Releases/ReleaseNotes095802.md new file mode 100644 index 000000000..f0c1edb91 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095802.md @@ -0,0 +1,51 @@ +--- +layout: page +title: ReleaseNotes095802 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.58.02 | 12 sep 2022 | [ReleaseNotes](ReleaseNotes095802.html) | +| --- | --- | --- | + + + +sbndcode v09_58_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_58_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_58_02/sbndcode-v09_58_02.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_58_02 +* larsoft v09_58_02 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-09-12 Fran Nicolas : Merge branch 'release/v09_58_02' +* 2022-09-12 Fran Nicolas : Update to version v09_58_02 +* 2022-09-05 Fran Nicolas : Merge tag 'v09_58_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-09-12 Fran Nicolas : Merge tag 'v09_58_02' into develop +* 2022-09-12 Fran Nicolas : Merge branch 'release/v09_58_02' +* 2022-09-12 Fran Nicolas : Update to version v09_58_02 +* 2022-09-05 Fran Nicolas : Merge tag 'v09_58_01' into develop From 6d595f43a1524a7e5ce443241aa4271d951c2c90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 12 Sep 2022 18:14:24 +0000 Subject: [PATCH 0257/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 1ea3182a8..5b12d89d8 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_58_02` | Weekly release | [Release Notes](ReleaseNotes095802.html) |`v09_58_01` | Weekly release | [Release Notes](ReleaseNotes095801.html) |`v09_58_00` | Weekly release | [Release Notes](ReleaseNotes095800.html) |`v09_56_00_01` | Weekly release | [Release Notes](ReleaseNotes09560001.html) From 7d4634dae85eb5d6c8a00a043398e41f966a5d65 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 08:29:52 +0000 Subject: [PATCH 0258/1437] Create sbncode_v09_48_00.md --- .../Releases/sbncode_v09_48_00.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_48_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_48_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_48_00.md new file mode 100644 index 000000000..c7604dcdd --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_48_00.md @@ -0,0 +1,41 @@ +--- +layout: page +title: sbncode_v09_48_00 +toc: true +--- + +sbncode_v09_48_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +11 April 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_48_00) has been cut and distributed. + +* sbncode (v09_48_00): + Using: + * larsoft v09_48_00 + * sbnobj v09_13_10 + * lardataobj v09_06_02 + * sbnanaobj v09_18_01 + + Includes: + * SBNSoftware/sbncode Add fclmodule. #252 + * SBNSoftware/sbnanaobj ///! is not valid doxygen syntax. Should be //!< or ///< #51 + * SBNSoftware/sbnanaobj Add enums to classes_def #55 + + + +Extra info +--------------------------------------------------- From 22ad653d27f34e8d45f77f65c50d49f0f038679a Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 08:42:01 +0000 Subject: [PATCH 0259/1437] Update and rename sbncode_v09_48_00.md to sbncode_sbnanan_v09_48_00.md --- ...de_v09_48_00.md => sbncode_sbnanan_v09_48_00.md} | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) rename AnalysisInfrastructure/ReleaseManagement/Releases/{sbncode_v09_48_00.md => sbncode_sbnanan_v09_48_00.md} (78%) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_48_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnanan_v09_48_00.md similarity index 78% rename from AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_48_00.md rename to AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnanan_v09_48_00.md index c7604dcdd..1d088057b 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_48_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnanan_v09_48_00.md @@ -1,10 +1,10 @@ --- layout: page -title: sbncode_v09_48_00 +title: sbncode_sbnana_v09_48_00 toc: true --- -sbncode_v09_48_00 Release Notes +sbncode_sbnana_v09_48_00 Release Notes ======================================================================================= [List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) @@ -21,7 +21,7 @@ Purpose New features --------------------------------------------------- -A weekly release of sbncode (v09_48_00) has been cut and distributed. +A weekly release of sbncode and sbnana (v09_48_00) has been cut and distributed. * sbncode (v09_48_00): Using: @@ -35,6 +35,13 @@ A weekly release of sbncode (v09_48_00) has been cut and distributed. * SBNSoftware/sbnanaobj ///! is not valid doxygen syntax. Should be //!< or ///< #51 * SBNSoftware/sbnanaobj Add enums to classes_def #55 +* sbnana (v09_48_00): + Using: + * sbnanaobj v09_18_01 + + Includes: + * Energy scale systematics #66 + Extra info From ae1af5031fee81991aa8a9b1295360deef83f595 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 10:21:40 +0000 Subject: [PATCH 0260/1437] Create sbncode_sbnana_v09_37_02_03.md --- .../Releases/sbncode_sbnana_v09_37_02_03.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md new file mode 100644 index 000000000..8b3a084e4 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md @@ -0,0 +1,49 @@ +--- +layout: page +title: sbncode_sbnana_v09_37_02_03 +toc: true +--- + +sbncode_sbnana_v09_37_02_03 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +11 April 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A production patch for sbncode and sbnana SBN2022A (v09_37_02_03) has been released. + +* sbncode (v09_37_02_03): + Using: + * sbnanaobj v09_17_06_06 + + Includes: + * SBNSoftware/sbnanaobj Add explicit size fields for numiinfo and bnbinfo #60 + * SBNSoftware/sbncode Fill the new BNB and NuMI size fields #254 + * SBNSoftware/sbnanaobj Upgrade to srproxy v00.35 #59 + * SBNSoftware/sbncode Adding implicit factor of 1e12 protons explicitly to BNB/NuMI POT accounting #253 + +* sbnana (v09_37_02_03): + Using: + * sbnanaobj v09_17_06_06 + + Includes: + * SBNSoftware/sbnana Update SBNWeightSysts to handle BNB flux systs #65 + * SBNSoftware/sbnana Update to srproxy v00.34 #64 + * SBNSoftware/sbnana Feature/bckhouse_multisigma_sbn2021c #61 + * SBNSoftware/sbnana Remove explicit dependency on srproxy #68 + * SBNSoftware/sbnana Make an attempt at counting exposure for BNB- or NuMI-triggered data #67 + + +Extra info +--------------------------------------------------- From 3520b8f4631330d09816c15b43a32480d8360d98 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 10:25:01 +0000 Subject: [PATCH 0261/1437] Create sbncode_v09_37_02_04.md --- .../Releases/sbncode_v09_37_02_04.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_04.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_04.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_04.md new file mode 100644 index 000000000..e9cd5834f --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_04.md @@ -0,0 +1,31 @@ +--- +layout: page +title: sbncode_v09_37_02_04 +toc: true +--- + +sbncode_v09_37_02_04 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +14 April 2022 + +Purpose +--------------------------------------------------- +* SBN2022A production patch release + +New features +--------------------------------------------------- +A production patch for sbncode SBN2022A (v09_37_02_04) has been released. + + * sbncode (v09_37_02_04): + Includes: + * SBNSoftware/sbncode Default CreateFlatCAF to true #260 + +Extra info +--------------------------------------------------- From 7d43ea639010398b9825be0c2609bc4fb1770aaa Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 10:37:39 +0000 Subject: [PATCH 0262/1437] Update sbncode_sbnana_v09_37_02_03.md --- .../ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md index 8b3a084e4..c432a69bd 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03.md @@ -17,7 +17,7 @@ Date Purpose --------------------------------------------------- -* Weekly release +* SBN2022A production patch release New features --------------------------------------------------- From 7be59a5d31a03ce93266958f8d2f23b7a2bdb3ba Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 10:44:26 +0000 Subject: [PATCH 0263/1437] Create sbncode_sbnana_v09_48_01.md --- .../Releases/sbncode_sbnana_v09_48_01.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_48_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_48_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_48_01.md new file mode 100644 index 000000000..f384ca46a --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_48_01.md @@ -0,0 +1,47 @@ +--- +layout: page +title: sbncode_sbnana_v09_48_01 +toc: true +--- + +sbncode_sbnana_v09_48_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +15 April 2022 + +Purpose +--------------------------------------------------- +* weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_48_01) has been cut and distributed. + +* sbncode (v09_48_01): + Using: + * larsoft v09_48_01 + * sbnobj v09_13_11 + * sbnanaobj v09_18_02 + + Includes: + * SBNSoftware/sbncode Merge release/SBN2022A into develop #259 + * SBNSoftware/sbncode Default CreateFlatCAF to true #256 + * SBNSoftware/sbnobj Merge release/SBN2022A into develop #50 + * SBNSoftware/sbnanaobj Merge release/SBN2022A into develop #63 + +* sbnana (v09_48_01): + Using: + * sbnanaobj v09_18_02 + + Includes: + * SBNSoftware/sbnana Merge release/SBN2022A into develop #69 + * SBNSoftware/sbnana Broaden 2D spectrum creation #70 + +Extra info +--------------------------------------------------- From 4eb9d60e8b470e112e7ea6ac6919e7d843a1dbb1 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 10:56:48 +0000 Subject: [PATCH 0264/1437] Create sbncode_sbnana_v09_49_00.md --- .../Releases/sbncode_sbnana_v09_49_00.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_49_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_49_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_49_00.md new file mode 100644 index 000000000..33f2da015 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_49_00.md @@ -0,0 +1,47 @@ +--- +layout: page +title: sbncode_sbnana_v09_49_00 +toc: true +--- + +sbncode_sbnana_v09_49_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +28 April 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_49_00) has been cut and distributed. + +* sbncode (v09_49_00): + Using: + * larsoft v09_49_00 + * sbnobj v09_13_12 + * lardataobj v09_06_03 + * sbnanaobj v09_18_03 + + Includes: + * SBNSoftware/sbncode Fix use of same name algorithm #262 + * SBNSoftware/sbnanaobj Initialise contained variable #65 + + +* sbnana (v09_49_0): + Using: + * sbnanaobj v09_18_03 + * ifdhc v2_6_3 + + + + +Extra info +--------------------------------------------------- From efa9371f67eb1707d54bddb747684b349102d194 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 11:01:57 +0000 Subject: [PATCH 0265/1437] Rename sbncode_sbnanan_v09_48_00.md to sbncode_sbnana_v09_48_00.md --- .../{sbncode_sbnanan_v09_48_00.md => sbncode_sbnana_v09_48_00.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename AnalysisInfrastructure/ReleaseManagement/Releases/{sbncode_sbnanan_v09_48_00.md => sbncode_sbnana_v09_48_00.md} (100%) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnanan_v09_48_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_48_00.md similarity index 100% rename from AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnanan_v09_48_00.md rename to AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_48_00.md From c7cb069af9e38c3aa496c20eeaf4e5f4cddce69d Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 11:04:34 +0000 Subject: [PATCH 0266/1437] Create sbncode_sbnana_v09_50_00.md --- .../Releases/sbncode_sbnana_v09_50_00.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_50_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_50_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_50_00.md new file mode 100644 index 000000000..ad6e8262c --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_50_00.md @@ -0,0 +1,43 @@ +--- +layout: page +title: sbncode_sbnana_v09_50_00 +toc: true +--- + +sbncode_sbnana_v09_50_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +06 May 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_50_00) has been cut and distributed. + +* sbncode (v09_50_00): + Using: + * larsoft v09_50_00 + * sbnobj v09_13_13 + * lardataobj v09_06_04 + + Includes: + * SBNSoftware/sbncode add headers needed by larsoft v09_50_00 #263 + * SBNSoftware/sbnobj Change Time Data Type for CRTHit and CRTTrack #52 + +* sbnana (v09_50_00): + Includes: + * SBNSoftware/sbnana Add out-of-time cosmics parameter to SingleSampleExperiment #71 + + + +Extra info +--------------------------------------------------- From eb32b50eb50732f003c9b8ef9f1e215a1e7b2448 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 11:07:12 +0000 Subject: [PATCH 0267/1437] Create sbncode_sbnana_v09_51_00.md --- .../Releases/sbncode_sbnana_v09_51_00.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_51_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_51_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_51_00.md new file mode 100644 index 000000000..d823e80df --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_51_00.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbncode_sbnana_v09_51_00 +toc: true +--- + +sbncode_sbnana_v09_51_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +12 May 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_51_00) has been cut and distributed. + +* sbncode (v09_51_00): + Using: + * larsoft v09_51_00 + +* sbnana (v09_51_00): + Includes: + * SBNSoftware/sbnana Add NuTruthWeight version of Universe Weight #72 + + + +Extra info +--------------------------------------------------- From 9e6f8bbef29dd16c272a0fbf814a40fd58429738 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 11:14:49 +0000 Subject: [PATCH 0268/1437] Create sbncode_sbnana_v09_52_00.md --- .../Releases/sbncode_sbnana_v09_52_00.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_00.md new file mode 100644 index 000000000..52d19f1b2 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_00.md @@ -0,0 +1,44 @@ +--- +layout: page +title: sbncode_sbnana_v09_52_00 +toc: true +--- + +sbncode_sbnana_v09_52_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +23 May 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_52_00) has been cut and distributed. + +* sbncode (v09_52_00): + Using: + * larsoft v09_52_00 + * sbnobj v09_14_00 + * lardataobj v09_07_00 + * sbndaq_artdaq_core v1_01_00of0 + + Includes: + * SBNSoftware/sbncode Add example training script for CRUMBS tool #266 + * SBNSoftware/sbncode Fix accidental overwrite in FluxReader #267 + * SBNSoftware/sbnobj Add SBND-Specific FEBData Data Product #53 + * SBNSoftware/sbndaq-artdaq-core Feature/jzettle smalltrigdecodeupdates #54 + +* sbnana (v09_52_00): + Includes: + * SBNSoftware/sbnana Add demo for using CRUMBS in the CAF framework #75 + +Extra info +--------------------------------------------------- From 47c6f577e31898b7d92d6f3829db524d65fdf131 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 11:19:34 +0000 Subject: [PATCH 0269/1437] Create sbncode_v09_37_02_05.md --- .../Releases/sbncode_v09_37_02_05.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_05.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_05.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_05.md new file mode 100644 index 000000000..b53f44c06 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_05.md @@ -0,0 +1,38 @@ +--- +layout: page +title: sbncode_v09_37_02_05 +toc: true +--- + +sbncode_v09_37_02_05 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +23 May 2022 + +Purpose +--------------------------------------------------- +* SBN2022A production patch release + +New features +--------------------------------------------------- +A sbncode (v09_37_02_05) patch release for the SBN2022A production has been cut and distributed. + +* sbncode (v09_37_02_05): + Using: + * sbnobj v09_12_12_01 + * sbndaq_artdaq_core v1_01_00of0 + + Includes + * SBNSoftware/sbnobj Change Time Data Type for CRTHit and CRTTrack #54 + + + + +Extra info +--------------------------------------------------- From 73c13b4f8b5e86ee55bb5a4bcf660a83427fc963 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 11:22:09 +0000 Subject: [PATCH 0270/1437] Update sbncode_sbnana_v09_37_02_01.md --- .../ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md index b6155623e..df77745c4 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01.md @@ -21,7 +21,7 @@ Purpose New features --------------------------------------------------- -A procduction patch release of sbncode and sbnana (v09_37_02_01) has been cut and distributed. +A SBN2022A production patch release of sbncode and sbnana (v09_37_02_01) has been cut and distributed. update for fix in sbnanaobj; new release v09_37_02_01 for SBN 2022A * sbncode (v09_37_02_01): Using: From 766e31924cb6de972746a03ec8cb80bd4e69fc36 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 13 Sep 2022 11:26:15 +0000 Subject: [PATCH 0271/1437] Update List_of_SBN_code_releases.md --- .../Releases/List_of_SBN_code_releases.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 643432c04..0eedb3943 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,7 +11,16 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- -|`v09_37_02_02` | 'sbncode' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_02) +|`v09_37_02_05` | 'sbncode' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_05) +|`v09_52_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_00) +|`v09_51_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_51_00) +|`v09_50_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_50_00) +|`v09_49_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_49_00) +|`v09_48_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_48_01) +|`v09_37_02_04` | 'sbncode' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_04) +|`v09_37_02_03` | 'sbncode/sbnana' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_03) +|`v09_48_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_48_00) +|`v09_37_02_02` | 'sbncode' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_02) |`v09_47_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_47_00) |`v09_37_02_01` | 'sbncode/sbnana' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_37_02_01) |`SBN2022A` | 'sbncode' SBN2022A production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02) From ff438d147c443a1cd4f89a1514401355277170d5 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Wed, 14 Sep 2022 20:20:11 +0700 Subject: [PATCH 0272/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index e52771127..e1ca2c712 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -247,5 +247,35 @@ Processed Data SBN Production Samples ICARUS DATA -------------------------- - - +| Offbeam NuMI MinBias stream | Run 1 batch3 | v09_37_02_09 | 374836 | stage0 | IcarusProd_Run1_batch3_OffBeamNuMIMinBiasstream_stage0 | +| --- | --- | --- | 374836 | stage1 | IcarusProd_Run1_batch3_OffBeamNuMIMinBiasstream_stage1 | +| Offbeam BNB MinBias stream | Run 1 batch3 | v09_37_02_09 | 736968 | stage0 | IcarusProd_Run1_batch3_OffBeamBNBMinBiasstream_stage0 | +| --- | --- | --- | 736968 | stage1 | IcarusProd_Run1_batch3_OffBeamBNBMinBiasstream_stage1 | +| NuMI MinBias stream | Run 1 batch3 | v09_37_02_09 | 19566 | stage0 | IcarusProd_Run1_batch3_NuMIMinBiasstream_stage0 | +| --- | --- | --- | 19566 | stage1 | IcarusProd_Run1_batch3_NuMIMinBiasstream_stage1 | +| BNB MinBias stream | Run 1 batch3 | v09_37_02_09 | 42134 | stage0 | IcarusProd_Run1_batch3_BNBMinBiasstream_stage0 | +| --- | --- | --- | 42134 | stage1 | IcarusProd_Run1_batch3_BNBMinBiasstream_stage1 | +| Offbeam NuMI Majority stream | Run 1 batch3 | v09_37_02_09 | 109510 | stage0 | IcarusProd_Run1_batch3_OffBeamNuMIMajoritystream_stage0 | +| --- | --- | --- | 109510 | stage1 | IcarusProd_Run1_batch3_OffBeamNuMIMajoritystream_stage1 | +| Offbeam BNB Majority stream | Run 1 batch3 | v09_37_02_09 | 227027 | stage0 | IcarusProd_Run1_batch3_OffBeamBNBMajoritystream_stage0 | +| --- | --- | --- | 227027 | stage1 | IcarusProd_Run1_batch3_OffBeamBNBMajoritystream_stage1 | +| NuMI Majority stream | Run 1 batch3 | v09_37_02_09 | 284336 | stage0 | IcarusProd_Run1_batch3_NuMIMajoritystream_stage0 | +| --- | --- | --- | 284336 | stage1 | IcarusProd_Run1_batch3_NuMIMajoritystream_stage1 | +| BNB Majority stream | Run 1 batch3 | v09_37_02_09 | 362487 | stage0 | IcarusProd_Run1_batch3_BNBMajoritystream_stage0 | +| --- | --- | --- | 362487 | stage1 | IcarusProd_Run1_batch3_BNBMajoritystream_stage1 | +| Offbeam NuMI stream | Run 1 batch2 | v09_37_02_03 | 102488 | stage0 | IcarusProd_Run1_batch2_OffBeamNuMIstream_stage0 | +| --- | --- | --- | 102488 | stage1 | IcarusProd_Run1_batch2_OffBeamNuMIstream_stage1 | +| Offbeam BNB stream | Run 1 batch2 | v09_37_02_03 | 327855 | stage0 | IcarusProd_Run1_batch2_OffBeamBNBstream_stage0 | +| --- | --- | --- | 327855 | stage1 | IcarusProd_Run1_batch2_OffBeamBNBstream_stage1 | +| NuMI stream | Run 1 batch2 | v09_37_02_03 | 200220 | stage0 | IcarusProd_Run1_batch2_NuMIstream_stage0 | +| --- | --- | --- | 200220 | stage1 | IcarusProd_Run1_batch2_NuMIstream_stage1 | +| BNB stream | Run 1 batch2 | v09_37_02_03 | 935069 | stage0 | IcarusProd_Run1_batch2_BNBstream_stage0 | +| --- | --- | --- | 935069 | stage1 | IcarusProd_Run1_batch2_BNBstream_stage1 | +| Offbeam NuMI stream | Run 1 reprocessing | v09_37_02_01 | 212809 | stage0 | IcarusProd_Run1_reprocess_OffBeamNuMIstream_stage0 | +| --- | --- | --- | 212809 | stage1 | IcarusProd_Run1_reprocess_OffBeamNuMIstream_stage1 | +| Offbeam BNB stream | Run 1 reprocessing | v09_37_02_01 | 127768 | stage0 | IcarusProd_Run1_reprocess_OffBeamBNBstream_stage0 | +| --- | --- | --- | 127768 | stage1 | IcarusProd_Run1_reprocess_OffBeamBNBstream_stage1 | +| NuMI stream | Run 1 reprocessing | v09_37_02_01 | 333097 | stage0 | IcarusProd_Run1_reprocess_NuMIstream_stage0 | +| --- | --- | --- | 333097 | stage1 | IcarusProd_Run1_reprocess_NuMIstream_stage1 | +| BNB stream | Run 1 reprocessing | v09_37_02_01 | 627484 | stage0 | IcarusProd_Run1_reprocess_BNBstream_stage0 | +| --- | --- | --- | 627484 | stage1 | IcarusProd_Run1_reprocess_BNBstream_stage1 | From 57e98fc5564f44da0fd715ae048974e0c8d3ed3f Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Wed, 14 Sep 2022 20:33:53 +0700 Subject: [PATCH 0273/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index e1ca2c712..a5deeaddb 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -247,22 +247,32 @@ Processed Data SBN Production Samples ICARUS DATA -------------------------- + +### Notes on samples ### +* Run 1 reprocessing is the reprocessing of selected runs based on the good run list created by Gray and Minerba. Please refer to this docdb for the list of runs: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=25407&filename=ICARUS%20Data%20Re-Processing.pdf&version=1 +* Run 1 batch 2 is the processing of run_number > 7621 and run_number < 8460 (before the update to the new DAQ configuration) +* Run 1 batch 3 is the processing of run_number >= 8460 and run_number < 8598 (after the update to the new DAQ configuration resulting in 8 new data stream: (offbeam) BNB/NuMI Majority/MinBias) + + + +| Sample Description | production push | release version | # Events | Sample type | Samweb definition | +| --- | --- | --- | --- | --- | --- | | Offbeam NuMI MinBias stream | Run 1 batch3 | v09_37_02_09 | 374836 | stage0 | IcarusProd_Run1_batch3_OffBeamNuMIMinBiasstream_stage0 | | --- | --- | --- | 374836 | stage1 | IcarusProd_Run1_batch3_OffBeamNuMIMinBiasstream_stage1 | -| Offbeam BNB MinBias stream | Run 1 batch3 | v09_37_02_09 | 736968 | stage0 | IcarusProd_Run1_batch3_OffBeamBNBMinBiasstream_stage0 | -| --- | --- | --- | 736968 | stage1 | IcarusProd_Run1_batch3_OffBeamBNBMinBiasstream_stage1 | +| Offbeam BNB MinBias stream | Run 1 batch3 | v09_37_02_09 | 741147 | stage0 | IcarusProd_Run1_batch3_OffBeamBNBMinBiasstream_stage0 | +| --- | --- | --- | 741147 | stage1 | IcarusProd_Run1_batch3_OffBeamBNBMinBiasstream_stage1 | | NuMI MinBias stream | Run 1 batch3 | v09_37_02_09 | 19566 | stage0 | IcarusProd_Run1_batch3_NuMIMinBiasstream_stage0 | | --- | --- | --- | 19566 | stage1 | IcarusProd_Run1_batch3_NuMIMinBiasstream_stage1 | -| BNB MinBias stream | Run 1 batch3 | v09_37_02_09 | 42134 | stage0 | IcarusProd_Run1_batch3_BNBMinBiasstream_stage0 | -| --- | --- | --- | 42134 | stage1 | IcarusProd_Run1_batch3_BNBMinBiasstream_stage1 | +| BNB MinBias stream | Run 1 batch3 | v09_37_02_09 | 42680 | stage0 | IcarusProd_Run1_batch3_BNBMinBiasstream_stage0 | +| --- | --- | --- | 42680 | stage1 | IcarusProd_Run1_batch3_BNBMinBiasstream_stage1 | | Offbeam NuMI Majority stream | Run 1 batch3 | v09_37_02_09 | 109510 | stage0 | IcarusProd_Run1_batch3_OffBeamNuMIMajoritystream_stage0 | | --- | --- | --- | 109510 | stage1 | IcarusProd_Run1_batch3_OffBeamNuMIMajoritystream_stage1 | -| Offbeam BNB Majority stream | Run 1 batch3 | v09_37_02_09 | 227027 | stage0 | IcarusProd_Run1_batch3_OffBeamBNBMajoritystream_stage0 | -| --- | --- | --- | 227027 | stage1 | IcarusProd_Run1_batch3_OffBeamBNBMajoritystream_stage1 | +| Offbeam BNB Majority stream | Run 1 batch3 | v09_37_02_09 | 231169 | stage0 | IcarusProd_Run1_batch3_OffBeamBNBMajoritystream_stage0 | +| --- | --- | --- | 231169 | stage1 | IcarusProd_Run1_batch3_OffBeamBNBMajoritystream_stage1 | | NuMI Majority stream | Run 1 batch3 | v09_37_02_09 | 284336 | stage0 | IcarusProd_Run1_batch3_NuMIMajoritystream_stage0 | | --- | --- | --- | 284336 | stage1 | IcarusProd_Run1_batch3_NuMIMajoritystream_stage1 | -| BNB Majority stream | Run 1 batch3 | v09_37_02_09 | 362487 | stage0 | IcarusProd_Run1_batch3_BNBMajoritystream_stage0 | -| --- | --- | --- | 362487 | stage1 | IcarusProd_Run1_batch3_BNBMajoritystream_stage1 | +| BNB Majority stream | Run 1 batch3 | v09_37_02_09 | 368711 | stage0 | IcarusProd_Run1_batch3_BNBMajoritystream_stage0 | +| --- | --- | --- | 368711 | stage1 | IcarusProd_Run1_batch3_BNBMajoritystream_stage1 | | Offbeam NuMI stream | Run 1 batch2 | v09_37_02_03 | 102488 | stage0 | IcarusProd_Run1_batch2_OffBeamNuMIstream_stage0 | | --- | --- | --- | 102488 | stage1 | IcarusProd_Run1_batch2_OffBeamNuMIstream_stage1 | | Offbeam BNB stream | Run 1 batch2 | v09_37_02_03 | 327855 | stage0 | IcarusProd_Run1_batch2_OffBeamBNBstream_stage0 | From 544587a0c3c3d66c3d2848e673513c02bac3ba0b Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 14:22:58 +0000 Subject: [PATCH 0274/1437] Create sbncode_sbnana_v09_52_01.md --- .../Releases/sbncode_sbnana_v09_52_01.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md new file mode 100644 index 000000000..caab4db26 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md @@ -0,0 +1,45 @@ +--- +layout: page +title: sbncode_sbnana_v09_52_01. +toc: true +--- + +sbncode_sbnana_v09_52_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +27 May 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_52_01) has been cut and distributed. + +* sbncode (v09_52_01): + Using: + * larsoft v09_52_01 + * sbnobj v09_14_01 + * lardataobj v09_07_01 + * cetbuildtools v8_20_00 + + Includes: + * SBNSoftware/sbncode Updates to POT accounting codes to account for new trigger fragment #268 + +* sbnana (v09_52_01): + Using: + * cetbuildtools v8_20_00 + + Includes: + * SBNSoftware/sbnana Add EnsembleFluxTimesNuceli and enable passing a weight #77 + * SBNSoftware/sbnana Make bin density do something in EnsembleSpectrum #76 + +Extra info +--------------------------------------------------- From e6d721e76a59acaa7a3a39a4161386f79805d90a Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 14:25:45 +0000 Subject: [PATCH 0275/1437] Create sbncode_v09_37_02_06.md --- .../Releases/sbncode_v09_37_02_06.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_06.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_06.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_06.md new file mode 100644 index 000000000..d4099fb13 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_06.md @@ -0,0 +1,31 @@ +--- +layout: page +title: sbncode_v09_37_02_06 +toc: true +--- + +sbncode_v09_37_02_06 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +27 May 2022 + +Purpose +--------------------------------------------------- +* SBN2022A production patch release + +New features +--------------------------------------------------- +A SBN2022A production patch sbncode (v09_37_02_06) has been distributed + + Includes + * SBNSoftware/sbncode Updates to POT accounting codes to account for new trigger fragment #269 + + +Extra info +--------------------------------------------------- From e5a474645799c74db49129cd26cd00804b56a601 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 14:30:44 +0000 Subject: [PATCH 0276/1437] Update sbncode_sbnana_v09_52_01.md --- .../ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md index caab4db26..817c43f53 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01.md @@ -28,6 +28,7 @@ A weekly release of sbncode and sbnana (v09_52_01) has been cut and distributed * larsoft v09_52_01 * sbnobj v09_14_01 * lardataobj v09_07_01 + * sbnanaobj v09_18_04 * cetbuildtools v8_20_00 Includes: @@ -35,6 +36,7 @@ A weekly release of sbncode and sbnana (v09_52_01) has been cut and distributed * sbnana (v09_52_01): Using: + * sbnanaobj v09_18_04 * cetbuildtools v8_20_00 Includes: From 4a35492a8dedbfcd2c799cec467c8340bf4617e5 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:16:38 +0000 Subject: [PATCH 0277/1437] Create sbncode_v09_53_00_01.md --- .../Releases/sbncode_v09_53_00_01.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_00_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_00_01.md new file mode 100644 index 000000000..79403c842 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_00_01.md @@ -0,0 +1,36 @@ +--- +layout: page +title: sbncode_v09_53_00_01 +toc: true +--- + +sbncode_v09_53_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +02 June 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_53_00_01) has been cut and distributed. + + * sbncode (v09_53_00_01): + Using: + * larsoft v09_53_00 + * sbnobj v09_14_02 + + Includes: + * SBNSoftware/sbncode Change variables to pick up performance improvements #261 + * SBNSoftware/sbnobj Initialize fWidth #56 + +Extra info +--------------------------------------------------- From 3bf5c4e3c704503a11a8e8481295af9490d41df4 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:20:46 +0000 Subject: [PATCH 0278/1437] Create sbnana_v09_53_00.md --- .../Releases/sbnana_v09_53_00.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_53_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_53_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_53_00.md new file mode 100644 index 000000000..e452dfcde --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_53_00.md @@ -0,0 +1,35 @@ +--- +layout: page +title: sbnana_v09_53_00 +toc: true +--- + +sbnana_v09_53_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +02 June 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbnana (v09_53_00) has been cut and distributed. + +* sbnana (v09_53_00): + Using: + * ifdhc v2_6_4 + + Includes: + * SBNSoftware/sbnana Add MakeTotalFlux and SaveTo/LoadFrom to (Ensemble)FluxTimeNuclei #78 + + +Extra info +--------------------------------------------------- From eb2be5636f38796bd50d3b1a5c2194580a2100e8 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:23:54 +0000 Subject: [PATCH 0279/1437] Create sbncode_v09_53_01.md --- .../Releases/sbncode_v09_53_01.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_01.md new file mode 100644 index 000000000..3e939cd73 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_01.md @@ -0,0 +1,36 @@ +--- +layout: page +title: sbncode_v09_53_01 +toc: true +--- + +sbncode_v09_53_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +09 June 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_53_01) has been cut and distributed. + +* sbncode (v09_53_01): + Using: + * larsoft v09_53_01 + * sbnobj v09_14_03 + * lardataobj v09_08_00 + + Includes: + * SBNSoftware/sbncode use ts0() instead od ts0_ns in CAFMaker #272 + +Extra info +--------------------------------------------------- From 68ccce5238f5fed92847e3467e3711768539579c Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:34:34 +0000 Subject: [PATCH 0280/1437] Create sbncode_v09_37_02_07.md --- .../Releases/sbncode_v09_37_02_07.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_07.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_07.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_07.md new file mode 100644 index 000000000..ccb5389e5 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_07.md @@ -0,0 +1,34 @@ +--- +layout: page +title: sbncode_v09_37_02_07 +toc: true +--- + +sbncode_v09_37_02_07 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +13 June 2022 + +Purpose +--------------------------------------------------- +* SBN2022A production patch release + +New features +--------------------------------------------------- +A SBN2022A production patch sbncode (v09_37_02_07) has been distributed + + Using: + * sbnobj v09_12_12_02 + + Includes + * SBNSoftware/sbnobj Change Time Data Type for CRTHit and CRTTrack #54 + + +Extra info +--------------------------------------------------- From 0ee06b93e08927da8484429c8b833521c8b319fd Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:40:13 +0000 Subject: [PATCH 0281/1437] Create sbncode_sbnana_v09_53_02.md --- .../Releases/sbncode_sbnana_v09_53_02.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_53_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_53_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_53_02.md new file mode 100644 index 000000000..5c73a7f1c --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_53_02.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbncode_sbnana_v09_53_02 +toc: true +--- + +sbncode_sbnana_v09_53_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +17 June 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_53_02) has been cut and distributed. + +* sbncode (v09_53_02): + Using: + * larsoft v09_53_02 + +* sbnana (v09_53_02): + Includes: + * SBNSoftware/sbnana Migrating Covariance and Bias Matrix Calculation to Eigen #80 + * SBNSoftware/sbnana Add ReplicatedData to EnsembleSpectrum #81 + + +Extra info +--------------------------------------------------- From cb684ea0bbbd72fafa56a93a0a358589e1e39095 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:44:22 +0000 Subject: [PATCH 0282/1437] Create sbncode_sbnana_v09_54_00.md --- .../Releases/sbncode_sbnana_v09_54_00.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_54_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_54_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_54_00.md new file mode 100644 index 000000000..f1808a81d --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_54_00.md @@ -0,0 +1,45 @@ +--- +layout: page +title: sbncode_sbnana_v09_54_00 +toc: true +--- + +sbncode_sbnana_v09_54_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +03 July 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_54_00) has been cut and distributed. + +* sbncode (v09_54_00): + Using: + * larsoft v09_54_00 + * sbnanaobj v09_18_05 + + Includes: + * SBNSoftware/sbncode MPV/MPR Event generator fix & new option #231 + * SBNSoftware/sbncode Fill SROpFlash into CAFs enhancement #273 + + +* sbnana (v09_54_00): + Using: + * sbnanaobj v09_18_05 + + Includes: + * SBNSoftware/sbnanaobj Create SROpFlash #67 + + +Extra info +--------------------------------------------------- From b000f6ec8f79cef27da180096ed098a9ceb633e7 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:47:45 +0000 Subject: [PATCH 0283/1437] Create sbncode_sbnana_v09_55_00.md --- .../Releases/sbncode_sbnana_v09_55_00.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_00.md new file mode 100644 index 000000000..c2dc200d8 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_00.md @@ -0,0 +1,44 @@ +--- +layout: page +title: sbncode_sbnana_v09_55_00 +toc: true +--- + +sbncode_sbnana_v09_55_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +20 July 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_55_00) has been cut and distributed. + +* sbncode (v09_55_00): + Using: + * larsoft v09_55_00 + * sbnobj v09_14_04 + * lardataobj v09_09_00 + * sbnanaobj v09_18_06 + + Includes: + * SBNSoftware/sbnanaobj Added vector of SROpFlash to SR dictionaries #69 + * SBNSoftware/sbnanaobj Removing ROOT dictionary sources from the repository #68 + + +* sbnana (v09_55_00): + Using: + * sbnanaobj v09_18_06 + + +Extra info +--------------------------------------------------- From c7d30d64b4ad41c0e2a2ebf7cc86a10690e4531b Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:49:29 +0000 Subject: [PATCH 0284/1437] Create sbncode_sbnana_v09_55_01.md --- .../Releases/sbncode_sbnana_v09_55_01.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_01.md new file mode 100644 index 000000000..0dbe2dacc --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_01.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbncode_sbnana_v09_55_01 +toc: true +--- + +sbncode_sbnana_v09_55_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +25 July 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_55_01) has been cut and distributed. + +* sbncode (v09_55_01): + Using: + * larsoft v09_55_01 + + +* sbnana (v09_55_01): + Using: + * ifdhc v2_6_6 + + +Extra info +--------------------------------------------------- From 3a904d9e963d9c9095fcb20f985b800b79393bc9 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:52:36 +0000 Subject: [PATCH 0285/1437] Create sbncode_sbnana_v09_56_00.md --- .../Releases/sbncode_sbnana_v09_56_00.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_56_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_56_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_56_00.md new file mode 100644 index 000000000..91a1dd29d --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_56_00.md @@ -0,0 +1,45 @@ +--- +layout: page +title: sbncode_sbnana_v09_56_00 +toc: true +--- + +sbncode_sbnana_v09_56_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +03 August 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_56_00) has been cut and distributed. + +* sbncode (v09_56_00): + Using: + * larsoft v09_56_00 + * sbnanaobj v09_19_00 + * srproxy v00.36 + + Includes: + * SBNSoftware/sbnanaobj Update to srproxy v00.36 (drops support for multi-tree flatcafs) #70 + +* sbnana (v09_56_00): + Using: + * sbnanaobj v09_19_00 + * srproxy v00.36 + + Includes: + * SBNSoftware/sbnana Update to srproxy v00.36 (drops support for multi-tree flatcafs) #83 + + +Extra info +--------------------------------------------------- From ef57162db9598798e57a47aecb304fa045c080b5 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 15:57:57 +0000 Subject: [PATCH 0286/1437] Create sbncode_v09_56_00_01.md --- .../Releases/sbncode_v09_56_00_01.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_56_00_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_56_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_56_00_01.md new file mode 100644 index 000000000..70ca5a456 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_56_00_01.md @@ -0,0 +1,40 @@ +--- +layout: page +title: sbncode_v09_56_00_01 +toc: true +--- + +sbncode_v09_56_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +16 August 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_56_00_01) has been cut and distributed. + +* sbncode (v09_56_00_01): + Using: + * sbnobj v09_14_05 + * sbnanaobj v09_19_01 + + Includes: + * SBNSoftware/sbncode Updates to Calibration NTuple-r to Support Summer Production for develop #277 + * SBNSoftware/sbnobj Update Caloskim NTuple on Develop #59 + * SBNSoftware/sbnobj Add equivalent neutrino enrgy to MeVPrtl objects. #60 + * SBNSoftware/sbnanaobj Add in start to MeVPrtl object. #71 + * SBNSoftware/sbncode Updates to MeVPrtl Generator #278 + + +Extra info +--------------------------------------------------- From 97e1deb0cd3dbf12b3563d87a9e7ab16df6f3b5f Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 16:01:09 +0000 Subject: [PATCH 0287/1437] Create sbncode_v09_58_00.md --- .../Releases/sbncode_v09_58_00.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_00.md new file mode 100644 index 000000000..f0bd8ea13 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_00.md @@ -0,0 +1,33 @@ +--- +layout: page +title: sbncode_v09_58_00 +toc: true +--- + +sbncode_v09_58_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +29 August 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_58_00) has been cut and distributed. + +* sbncode (v09_58_00): + Using: + * sbnobj v09_14_06 + * lardataobj v09_10_01 + + +Extra info +--------------------------------------------------- From eabbda53b905a995c1e37bf63527bf905a49ebf3 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 16:04:32 +0000 Subject: [PATCH 0288/1437] Create sbncode_sbnana_v09_58_01.md --- .../Releases/sbncode_sbnana_v09_58_01.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_01.md new file mode 100644 index 000000000..00a413007 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_01.md @@ -0,0 +1,43 @@ +--- +layout: page +title: sbncode_sbnana_v09_58_01 +toc: true +--- + +sbncode_sbnana_v09_58_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +04 September 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_58_01) has been cut and distributed. + +* sbncode (v09_58_01): + Using: + * larsoft v09_58_01 + + Includes: + * SBNSoftware/sbncode Import SinglePhotonAnalysis Module from MicroBooNE #276 + * SBNSoftware/sbncode Integrate stub building with charge normalization procedure. #279 + +* sbnana (v09_58_01): + Using: + * sbnanaobj v09_19_01 + + Includes: + * SBNSoftware/sbnana Feature/jlarkin numu selection #84 + + +Extra info +--------------------------------------------------- From 558f8cf4f3e30f9d2c41e00e1b3448079744ee7e Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 16:08:36 +0000 Subject: [PATCH 0289/1437] Create sbncode_sbnana_v09_58_02.md --- .../Releases/sbncode_sbnana_v09_58_02.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02.md new file mode 100644 index 000000000..47d0b703e --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02.md @@ -0,0 +1,53 @@ +--- +layout: page +title: sbncode_sbnana_v09_58_02 +toc: true +--- + +sbncode_sbnana_v09_58_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +12 September 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_58_02) has been cut and distributed. + +* sbncode (v09_58_02): + Using: + * larsoft v09_58_02 + * sbnobj v09_14_07 + * sbnanaobj v09_19_02 + + Includes: + * SBNSoftware/sbncode Adding trigger information to CAF files to compute time within beam gate #281 + * SBNSoftware/sbncode Feature/jlarkin nuefakereco #283 + * SBNSoftware/sbncode Feature/rh sr hits #280 + * SBNSoftware/sbncode Feature/etw icarusblinding #285 + * SBNSoftware/sbncode bug fixes so it works with blinding off #287 + * SBNSoftware/sbncode Feature/etw icarusblinding #288 + * SBNSoftware/sbnobj Addition of trigger information in CAF files. Addition of time within beam gate to the CAFs for ICARUS data #61 + * SBNSoftware/sbnanaobj Addition of trigger information in CAF files adding time within beam gate for data events #73 + * SBNSoftware/sbnanaobj Feature/rh sr hits #72 + +* sbnana (v09_58_02): + Using: + * sbnanaobj v09_19_02 + + Includes: + * SBNSoftware/sbnana Implement concatenating of flatcafs in concat_cafs #82 + + + +Extra info +--------------------------------------------------- From f93e43908589c226de780233688410631bb14414 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 14 Sep 2022 16:09:00 +0000 Subject: [PATCH 0290/1437] Update List_of_SBN_code_releases.md --- .../Releases/List_of_SBN_code_releases.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 0eedb3943..44e2add09 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,21 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_58_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02) +|`v09_58_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_01) +|`v09_58_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_00) +|`v09_56_00_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_56_00_01) +|`v09_56_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_56_00) +|`v09_55_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_01) +|`v09_55_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_00) +|`v09_54_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_54_00) +|`v09_53_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_53_02) +|`v09_37_02_07` | 'sbncode' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_07) +|`v09_53_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_01) +|`v09_53_00` | 'sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_53_00) +|`v09_53_00_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_53_00_01) +|`v09_37_02_06` | 'sbncode' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_06) +|`v09_52_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_01) |`v09_37_02_05` | 'sbncode' SBN2022A production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_37_02_05) |`v09_52_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_52_00) |`v09_51_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_51_00) From bdb6b4f832ba904a68f97977233112b1b6d28737 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Wed, 14 Sep 2022 15:15:50 -0500 Subject: [PATCH 0291/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 8b64a836f..eb6a38d50 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_02_00 as of 8/2022) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_02_01 as of 9/2022) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` @@ -192,7 +192,7 @@ export MRB_PROJECT=sbndaq ``` And then to checkout and build `sbndaq` and `sbndaq-artdaq` (most common situation) source the script below _from your work directory_: ```bash -setup sbndaq v1_02_00 -q e20:prof:s112 +setup sbndaq v1_02_01 -q e20:prof:s112 export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) echo sbndaq version: $my_sbndaq_version From ed4fac8907f0e1f58a7c4f39ea93e8f1fa64b21c Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 14 Sep 2022 17:35:40 -0400 Subject: [PATCH 0292/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a5deeaddb..76dbff7a4 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -104,6 +104,12 @@ ICARUS MC | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| ICARUS_numi_higgs_M150_th2e-4_KDIF | MC2022A | v09_37_02_05 | 56300 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M150_th2e-4_KDIF_reco2 | +| --- | --- | --- | 56300 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M150_th2e-4_KDIF_caf | +| ICARUS_numi_higgs_M100_th2e-4_KDIF | MC2022A | v09_37_02_05 | 111100 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M100_th2e-4_KDIF_reco2 | +| --- | --- | --- | 110900 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M100_th2e-4_KDIF_caf | +| ICARUS_numi_higgs_M050_th2e-4_KDIF | MC2022A | v09_37_02_05 | 59850 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M050_th2e-4_KDIF_reco2 | +| --- | --- | --- | 59750 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M050_th2e-4_KDIF_caf | | ICARUS intime cosmics 1D drift simulation waveform files | MC2022A | v09_51_00 | 217,332 | reco2 | IcarusProd_2022A_Intime_Cosmic_WF_v09_51_00_reco2 | | --- | --- | --- | 204,630 | calib tuple | IcarusProd_2022A_Intime_Cosmic_WF_v09_51_00_calibtuples | | NUMI in-time cosmics with Overburden | MC2022A | v09_37_02_04 | 809,054 | reco2 | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_04_reco2 | From 33bc90d86c07f6f01f6385e67d1b47d2d7d9cfbf Mon Sep 17 00:00:00 2001 From: mattfcs Date: Thu, 15 Sep 2022 10:53:29 -0400 Subject: [PATCH 0293/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 76dbff7a4..800ae4437 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -14,7 +14,7 @@ toc_title: SBN Production Available Samples SBN Production Available Samples Page ========================================== -A list of samples that were requested and produced since Oct 2020 and the status of open requests can be checked at the [SBN Production Requests Database](https://docs.google.com/spreadsheets/d/17mFPGsP7gw4GRLSCwIL15QrtUnLVri_2k2Wjzhd6Ork/edit?usp=sharing). +A list of samples that were requested and produced since Oct 2020 and the status of open requests can be checked at the [SBN Production Requests Database](https://docs.google.com/spreadsheets/d/17mFPGsP7gw4GRLSCwIL15QrtUnLVri_2k2Wjzhd6Ork/edit?usp=sharing). More information on how to make requests can be found at the [SBN Production Wiki](https://sbnsoftware.github.io/sbn/sbnprod_wiki/Wiki). The spreadsheet contain the configuration files used, the code version, the statistics produced and the SAM dataset for access. Currently the production passes are organized in spreadsheet tabs. If necessary information can't be found, please email the production group at [sbn-mc-prod@fnal.gov](sbn-mc-prod@fnal.gov) From a08bbe2c8d04d219224bb7411bc4820e1e45b93b Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 15 Sep 2022 09:07:31 -0700 Subject: [PATCH 0294/1437] Added information on how to join SBNSoftware organization --- icaruscode_wiki/Computing_Resources.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/icaruscode_wiki/Computing_Resources.md b/icaruscode_wiki/Computing_Resources.md index d7c6d145e..5456f4e0a 100644 --- a/icaruscode_wiki/Computing_Resources.md +++ b/icaruscode_wiki/Computing_Resources.md @@ -308,8 +308,8 @@ And, about FIFE recomendations, [Project**-**py](https://cdcvs.fnal.gov/redmine/ is the recommended job submission tool (SBN-specific wiki documentation pending). -Software distribution ----------------------- +Software development and distribution +-------------------------------------- ICARUS code and the "software stack" it relies on are distributed in binary form for a few supported platforms. @@ -343,6 +343,12 @@ The full path to access the area is: _[[Instructions](Write_files_to_CVMFS.md) on how to deploy software in there are [elsewhere](Write_files_to_CVMFS.md).]_ + +### Source code + +ICARUS software codebase is stored as part of SBN, using GitHub organization [`SBNSoftware`](https://github.com/SBNSoftware) (which should not come to a surprise since it's where this wiki is also being hosted). +The development follows a pull request model. While pull requests can be made from personal forks, it is also possible to push pull request branches into `SBNSoftware` itself. To join the organization, follow the [instructions in SBN wiki](https://sbnsoftware.github.io/AnalysisInfrastructure/github-migration-to-do-list.html) and in particular [the request form](https://docs.google.com/forms/d/e/1FAIpQLSf_jrYDbaC3_WoLDzBappZkEpPpyD7tSt7UWF59TUyUEAjaSA/viewform?usp=sf_link) therein. + Storing data From 286d3ac59cc5e7f37a6d36388cb97ba2511bb30a Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Sun, 18 Sep 2022 22:37:58 +0000 Subject: [PATCH 0295/1437] Create sbncode_v09_58_02_01.md --- .../Releases/sbncode_v09_58_02_01.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01.md new file mode 100644 index 000000000..8d913377d --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01.md @@ -0,0 +1,39 @@ +--- +layout: page +title: sbncode_v09_58_02_01 +toc: true +--- + +sbncode_v09_58_02_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +18 September 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_58_02_01) has been cut and distributed. + +* sbncode (v09_58_02_01): + + Using: + * sbnobj v09_14_08 + * sbnanaobj v09_19_03 + + Includes: + * SBNSoftware/sbnobj add in CRTmetric products for CRTsoftware trigger metrics #62 + * SBNSoftware/sbnanaobj Add poistion into calo point object. #75 + * SBNSoftware/sbncode Save position of calo points in CAFMaker. #292 + * SBNSoftware/sbnobj Output of trigger gate object dump expanded. #63 + +Extra info +--------------------------------------------------- From 63c7131e21c34ebbc3f703290eebe43baa52c810 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Sun, 18 Sep 2022 22:38:40 +0000 Subject: [PATCH 0296/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 44e2add09..740f28007 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_58_02_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01) |`v09_58_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02) |`v09_58_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_01) |`v09_58_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_00) From ca23e49252fe44d226814c2d808c749445be6329 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 19 Sep 2022 13:25:49 -0400 Subject: [PATCH 0297/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 800ae4437..830a829d8 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -104,6 +104,8 @@ ICARUS MC | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| ICARUS_numi_higgs_M200_th2e-4_KDIF | MC2022A | v09_37_02_05 | 77950 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M200_th2e-4_KDIF_reco2 | +| --- | --- | --- | 77950 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M200_th2e-4_KDIF_caf | | ICARUS_numi_higgs_M150_th2e-4_KDIF | MC2022A | v09_37_02_05 | 56300 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M150_th2e-4_KDIF_reco2 | | --- | --- | --- | 56300 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M150_th2e-4_KDIF_caf | | ICARUS_numi_higgs_M100_th2e-4_KDIF | MC2022A | v09_37_02_05 | 111100 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M100_th2e-4_KDIF_reco2 | From 24cd7682f0fdfad1c9c2244c7239ad1725aaf146 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 19 Sep 2022 13:53:41 -0400 Subject: [PATCH 0298/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 830a829d8..6ec74dd4d 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -106,12 +106,16 @@ ICARUS MC | --- | --- | --- | --- | --- | --- | | ICARUS_numi_higgs_M200_th2e-4_KDIF | MC2022A | v09_37_02_05 | 77950 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M200_th2e-4_KDIF_reco2 | | --- | --- | --- | 77950 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M200_th2e-4_KDIF_caf | +| --- | --- | --- | 77950 | flatcaf | IcarusProd_2022A_ICARUS_numi_higgs_M200_th2e-4_KDIF_flatcaf | | ICARUS_numi_higgs_M150_th2e-4_KDIF | MC2022A | v09_37_02_05 | 56300 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M150_th2e-4_KDIF_reco2 | | --- | --- | --- | 56300 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M150_th2e-4_KDIF_caf | +| --- | --- | --- | 56300 | flatcaf | IcarusProd_2022A_ICARUS_numi_higgs_M150_th2e-4_KDIF_flatcaf | | ICARUS_numi_higgs_M100_th2e-4_KDIF | MC2022A | v09_37_02_05 | 111100 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M100_th2e-4_KDIF_reco2 | | --- | --- | --- | 110900 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M100_th2e-4_KDIF_caf | +| --- | --- | --- | 110900 | flatcaf | IcarusProd_2022A_ICARUS_numi_higgs_M100_th2e-4_KDIF_flatcaf | | ICARUS_numi_higgs_M050_th2e-4_KDIF | MC2022A | v09_37_02_05 | 59850 | reco2 | IcarusProd_2022A_ICARUS_numi_higgs_M050_th2e-4_KDIF_reco2 | | --- | --- | --- | 59750 | caf | IcarusProd_2022A_ICARUS_numi_higgs_M050_th2e-4_KDIF_caf | +| --- | --- | --- | 59750 | flatcaf | IcarusProd_2022A_ICARUS_numi_higgs_M050_th2e-4_KDIF_flatcaf | | ICARUS intime cosmics 1D drift simulation waveform files | MC2022A | v09_51_00 | 217,332 | reco2 | IcarusProd_2022A_Intime_Cosmic_WF_v09_51_00_reco2 | | --- | --- | --- | 204,630 | calib tuple | IcarusProd_2022A_Intime_Cosmic_WF_v09_51_00_calibtuples | | NUMI in-time cosmics with Overburden | MC2022A | v09_37_02_04 | 809,054 | reco2 | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_04_reco2 | From 5b26ced5f612f373e2c7fe6fa33cf56b14eb2f38 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 19 Sep 2022 16:57:54 -0500 Subject: [PATCH 0299/1437] new page: FTS --- sbn_online_wiki/sbndaq_Wiki.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 61046f3fb..48d713e2a 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -66,6 +66,7 @@ sbndaq detector components ---------------------------------------------- * [List of boardreaders](Boardreaders.md) * Configuring the [Multi Function Timing Unit (MFTU)](ACnet/MFTU.md) Beam Timing Interface +* [ICARUS File Transfer Service (FTS)](ICARUS_FTS.md) Troubleshooting ---------------------------------------------- From e89f4a8142175ee50b70bf59e73256d85ffd6080 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 19 Sep 2022 17:26:39 -0500 Subject: [PATCH 0300/1437] Create ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 sbn_online_wiki/ICARUS_FTS.md diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md new file mode 100644 index 000000000..5a68883ef --- /dev/null +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -0,0 +1,13 @@ +Sep 2022 +The document summarizes various discussions during the last weeks. It needs to be turned into a proper documentation. + +# Xporter + +- There is a cron job that runs the xporter process. That cron job starts a new one job every minute. +- The job should check to see if there is a lock file to see if another one is running. If so, it should say so in the log file, and exit. There are actually two checks for this: one in the runXporter.sh script directly run by cron, and another in the python code itself. Which means ... you can get 'in progress/do not run' messages in the log file while there still is an xporter process running. That's by design. + - Perhaps it's not wise to have two processes writing to the same log file? +- The ongoing xporter process will drift in and out of D state as it runs. I think this is normal. I think that one should not assume if you see the process in D state that it is dead. +- Xporter needs to communicate with both UconDB DB (postgres) and MongoDB to run + +# References +SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From c2e0ab296f29194232af26d61388c5da84bfc81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 20 Sep 2022 09:10:53 +0000 Subject: [PATCH 0301/1437] Create ReleaseNotes09580201.md --- .../Releases/ReleaseNotes09580201.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09580201.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09580201.md b/sbndcode_wiki/Releases/ReleaseNotes09580201.md new file mode 100644 index 000000000..5ffbaa066 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09580201.md @@ -0,0 +1,74 @@ +--- +layout: page +title: ReleaseNotes09580201 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.58.02.01 | 20 sep 2022 | [ReleaseNotes](ReleaseNotes09580201.html) | +| --- | --- | --- | + + + +sbndcode v09_58_02_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_58_02_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_58_02_01/sbndcode-v09_58_02_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR296 + * Made some modules to combine CRT and PMT simulated fragments into one event. +* sbndcode PR298 + * Update Pandora cheating config for refactored larg4 +* sbndcode PR299 + * Update CI reference values + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_58_02_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-09-20 Fran Nicolas : Merge branch 'release/v09_58_02_01' +* 2022-09-20 Fran Nicolas : Update to version v09_58_02_01 +* 2022-09-20 Francisco Javier Nicolás-Arnaldos : Merge pull request #298 from SBNSoftware/feature/etyley_pandoraCheat +* 2022-09-20 Francisco Javier Nicolás-Arnaldos : Merge pull request #296 from SBNSoftware/feature/eyandel_trigger +* 2022-09-20 Francisco Javier Nicolás-Arnaldos : Merge pull request #299 from SBNSoftware/henrylay97-patch-1 +* 2022-09-19 Henry Lay : Update ci_tests.cfg +* 2022-09-15 Edward Tyley : Update Pandora cheating config for refactored larg4 +* 2022-09-14 Henry Lay : Correct eventSize +* 2022-09-13 eyandel : fix run, subrun, event variables unused +* 2022-09-12 Fran Nicolas : Merge tag 'v09_58_02' into develop +* 2022-09-09 eyandel : adding in eventSize in 1730 header and changing waveform length to a fcl parameter +* 2022-09-08 eyandel : delete fhicldump file +* 2022-09-07 eyandel : delete out of date, unused pmtTriggerAna module +* 2022-09-07 eyandel : make T1 reset fragments for modules with no hits, add in fcl parameter to set lowest mac5 of boards +* 2022-09-07 eyandel : make T1 reset fragments for modules with no hits, add in fcl parameter to set lowest mac5 of boards +* 2022-08-11 eyandel : combine crt and pmt fragments producer modules, add pmt metrics into software metric producer +* 2022-08-11 eyandel : add crt software metrics to hitdumper +* 2022-08-10 eyandel : combine crt and pmt metrics into one metric producer +* 2022-08-09 eyandel : fix process name overlap in fragmenyt producers, add plane number bitwise shift to crt metric producer +* 2022-08-09 eyandel : add CRT metrics module from Michelle +* 2022-08-09 eyandel : fix missing PMT pairs + +sbndutil +--------------------------------------------------- + +* 2022-09-20 Fran Nicolas : Merge tag 'v09_58_02_01' into develop +* 2022-09-20 Fran Nicolas : Merge branch 'release/v09_58_02_01' +* 2022-09-20 Fran Nicolas : Update to larsoft v09_58_02_01 +* 2022-09-12 Fran Nicolas : Merge tag 'v09_58_02' into develop From 970df445956a68a7eddba09a2d1b1441105fe44d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 20 Sep 2022 09:11:26 +0000 Subject: [PATCH 0302/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 5b12d89d8..ee64ddf4f 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_58_02_01` | Weekly release | [Release Notes](ReleaseNotes09580201.html) |`v09_58_02` | Weekly release | [Release Notes](ReleaseNotes095802.html) |`v09_58_01` | Weekly release | [Release Notes](ReleaseNotes095801.html) |`v09_58_00` | Weekly release | [Release Notes](ReleaseNotes095800.html) From 6957d926e2df9c4ef003cf10ca0ccfce2f790450 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 22 Sep 2022 13:44:38 -0500 Subject: [PATCH 0303/1437] Update Acronym_List.md --- SBNYoung/Acronym_List.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SBNYoung/Acronym_List.md b/SBNYoung/Acronym_List.md index 1cb4a7517..384723c10 100644 --- a/SBNYoung/Acronym_List.md +++ b/SBNYoung/Acronym_List.md @@ -26,3 +26,4 @@ title: Acronyms - **SAM** Sequential Access via Metadata (the database system utilised by Fermilab to access and query files via their metadata) - **DAQ** Data Acquisition - **LAr** Liquid Argon +- **PMT** Process Management Tool (tricky, isn't it? this term is used in artdaq, and it's not a joke) From ec28fe7930155f6dd9446ec931bf8e4d18355033 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 26 Sep 2022 11:29:00 +0000 Subject: [PATCH 0304/1437] Create sbncode_sbnana_v09_59_00.md --- .../Releases/sbncode_sbnana_v09_59_00.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md new file mode 100644 index 000000000..720b1db0c --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md @@ -0,0 +1,49 @@ +--- +layout: page +title: sbncode_sbnana_v09_59_00 +toc: true +--- + +sbncode_sbnana_v09_59_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +26 September 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_59_00) has been cut and distributed. + +* sbncode (v09_58_02): + Using: + * larsoft v09_59_00 + * sbnobj v09_14_09 + * sbnanaobj v09_19_04 + + Includes: + * SBNSoftware/sbncode Fill Pfo Characterisation features in CAF files. #291 + * SBNSoftware/sbnanaobj PFO Characterisation feature updates #74 + * SBNSoftware/sbnobj Additions to trigger dump information minor #65 + + +* sbnana (v09_58_02): + Using: + * sbnanaobj v09_19_04 + + Includes: + * SBNSoftware/sbnana Feature/jlarkin nuedisappearance #86 + + + + +Extra info +--------------------------------------------------- From 339638a69315124d2452723e43e8b0a4d1b62306 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 26 Sep 2022 11:30:02 +0000 Subject: [PATCH 0305/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 740f28007..bf579dd04 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_59_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_59_00) |`v09_58_02_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01) |`v09_58_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02) |`v09_58_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_01) From 9f2c363c7f5b425a6ce01839d576f7a60a444b89 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 26 Sep 2022 11:32:28 +0000 Subject: [PATCH 0306/1437] Update List_of_SBN_code_releases.md --- .../Releases/List_of_SBN_code_releases.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index bf579dd04..6b605b969 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,12 +11,12 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- -|`v09_59_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_59_00) -|`v09_58_02_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01) +|`v09_59_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00) +|`v09_58_02_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01) |`v09_58_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02) |`v09_58_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_01) -|`v09_58_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_00) -|`v09_56_00_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_56_00_01) +|`v09_58_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_00) +|`v09_56_00_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_56_00_01) |`v09_56_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_56_00) |`v09_55_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_01) |`v09_55_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_55_00) From d23bc355fbf758c4361dce9cc64014aa2baafcb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 27 Sep 2022 09:14:22 +0000 Subject: [PATCH 0307/1437] Create ReleaseNotes095900.md --- sbndcode_wiki/Releases/ReleaseNotes095900.md | 57 ++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes095900.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes095900.md b/sbndcode_wiki/Releases/ReleaseNotes095900.md new file mode 100644 index 000000000..fd8638a22 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes095900.md @@ -0,0 +1,57 @@ +--- +layout: page +title: ReleaseNotes095900 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.59.00 | 27 sep 2022 | [ReleaseNotes](ReleaseNotes095900.html) | +| --- | --- | --- | + + + +sbndcode v09_59_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_59_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_59_00/sbndcode-v09_59_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR#297 + * Persist PFO BDT features + * Changes the pandora xml to utilise newly added features in LArContent to persist extra metadata (PFO characterisation variables) + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_59_00 +* larsoft v09_59_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-09-27 Fran Nicolas : Merge branch 'release/v09_59_00' +* 2022-09-27 Fran Nicolas : Update to larsoft v09_59_00 +* 2022-09-27 Francisco Javier Nicolás-Arnaldos : Merge pull request #297 from SBNSoftware/feature/howard_devForPR_pfochar +* 2022-09-26 Henry Lay : Remove first persistance instance +* 2022-09-20 Fran Nicolas : Merge tag 'v09_58_02_01' into develop +* 2022-08-01 Henry Lay : Persist PFO BDT features + +sbndutil +--------------------------------------------------- + +* 2022-09-27 Fran Nicolas : Merge tag 'v09_59_00' into develop +* 2022-09-27 Fran Nicolas : Merge branch 'release/v09_59_00' +* 2022-09-27 Fran Nicolas : Update to larsoft v09_59_00 +* 2022-09-20 Fran Nicolas : Merge tag 'v09_58_02_01' into develop From 70b7d40c98cfea9c80d17d757d115d8c13bb1f11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 27 Sep 2022 09:15:06 +0000 Subject: [PATCH 0308/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index ee64ddf4f..cacfcf420 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_59_00` | Weekly release | [Release Notes](ReleaseNotes095900.html) |`v09_58_02_01` | Weekly release | [Release Notes](ReleaseNotes09580201.html) |`v09_58_02` | Weekly release | [Release Notes](ReleaseNotes095802.html) |`v09_58_01` | Weekly release | [Release Notes](ReleaseNotes095801.html) From eddad22c1905f27c489656ae9fa69ce9b53de650 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Sun, 2 Oct 2022 22:45:59 +0000 Subject: [PATCH 0309/1437] Create sbncode_v09_60_00.md --- .../Releases/sbncode_v09_60_00.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_00.md new file mode 100644 index 000000000..1a4175062 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_00.md @@ -0,0 +1,43 @@ +--- +layout: page +title: sbncode_v09_60_00 +toc: true +--- + +sbncode_v09_60_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +02 October 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_60_00) has been cut and distributed. + +* sbncode (v09_60_00): + Using: + * larsoft v09_60_00 + * sbnobj v09_14_10 + * lardataobj v09_11_00 + * sbnanaobj v09_19_05 + + Includes: + * SBNSoftware/sbncode Add G4InfoReducer module #286 + * SBNSoftware/sbncode CRUMBS Multi Signal #29 + * SBNSoftware/sbnobj CRUMBS Multi Signal #66 + * SBNSoftware/sbnanaobj CRUMBS Multi Signal #76 + + + + +Extra info +--------------------------------------------------- From a1e383a60170bab5e4f1153b6c775cafa9d4adb8 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Sun, 2 Oct 2022 22:46:36 +0000 Subject: [PATCH 0310/1437] Update sbncode_sbnana_v09_59_00.md --- .../ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md index 720b1db0c..21c1497bc 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00.md @@ -23,7 +23,7 @@ New features --------------------------------------------------- A weekly release of sbncode and sbnana (v09_59_00) has been cut and distributed. -* sbncode (v09_58_02): +* sbncode (v09_59_00): Using: * larsoft v09_59_00 * sbnobj v09_14_09 @@ -35,7 +35,7 @@ A weekly release of sbncode and sbnana (v09_59_00) has been cut and distributed * SBNSoftware/sbnobj Additions to trigger dump information minor #65 -* sbnana (v09_58_02): +* sbnana (v09_59_00): Using: * sbnanaobj v09_19_04 From 1eac054e91b8862e271e2f70e8b19e976003ad36 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Sun, 2 Oct 2022 22:47:24 +0000 Subject: [PATCH 0311/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 6b605b969..c2283a3d7 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_60_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_00) |`v09_59_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00) |`v09_58_02_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01) |`v09_58_02` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_58_02) From 45f6ff7ccc2fcbdd87fd9450100a3a662fbc1b49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 4 Oct 2022 08:21:43 +0000 Subject: [PATCH 0312/1437] Create ReleaseNotes096000.md --- sbndcode_wiki/Releases/ReleaseNotes096000.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096000.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096000.md b/sbndcode_wiki/Releases/ReleaseNotes096000.md new file mode 100644 index 000000000..21615d058 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096000.md @@ -0,0 +1 @@ +09_60 From b319a3d48e9dba0d7e962becce02338880408a87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 4 Oct 2022 08:22:11 +0000 Subject: [PATCH 0313/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index cacfcf420..3a45fd048 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_60_00` | Weekly release | [Release Notes](ReleaseNotes096000.html) |`v09_59_00` | Weekly release | [Release Notes](ReleaseNotes095900.html) |`v09_58_02_01` | Weekly release | [Release Notes](ReleaseNotes09580201.html) |`v09_58_02` | Weekly release | [Release Notes](ReleaseNotes095802.html) From f6f8c620c0ae3135949e8288a06fc0e5f979e83d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 4 Oct 2022 09:16:54 +0000 Subject: [PATCH 0314/1437] Update ReleaseNotes096000.md --- sbndcode_wiki/Releases/ReleaseNotes096000.md | 62 +++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/ReleaseNotes096000.md b/sbndcode_wiki/Releases/ReleaseNotes096000.md index 21615d058..b78fee4a2 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes096000.md +++ b/sbndcode_wiki/Releases/ReleaseNotes096000.md @@ -1 +1,61 @@ -09_60 +--- +layout: page +title: ReleaseNotes096000 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.60.00 | 04 oct 2022 | [ReleaseNotes](ReleaseNotes096000.html) | +| --- | --- | --- | + + + +sbndcode v09_60_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_60_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_60_00/sbndcode-v09_60_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR302: CRUMBS Multi Signal + * Contains fcl updates to run the updated version of CRUMBS with different versions per signal. + * Adds fcls for producing the training trees from different samples. + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* larsoft v09_60_00 +* sbncode v09_60_00 +* sbnd_data v09_15_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-10-04 Fran Nicolas : Merge branch 'release/v09_60_00' +* 2022-10-04 Fran Nicolas : Update to larsoft v09_60_00 +* 2022-09-30 Francisco Javier Nicolás-Arnaldos : Merge pull request #302 from SBNSoftware/feature/hlay_CRUMBS_multi_signal +* 2022-09-29 Henry Lay : Update product_deps +* 2022-09-29 Henry Lay : Merge branch 'develop' into feature/hlay_CRUMBS_multi_signal +* 2022-09-27 Fran Nicolas : Merge tag 'v09_59_00' into develop +* 2022-09-26 Henry Lay : Point at new weights in sbnd_data v01_15_00 +* 2022-09-21 Henry Lay : Add fhicls for producing training trees +* 2022-09-19 Henry Lay : Include backtracking services + +sbndutil +--------------------------------------------------- + +* 2022-10-04 Fran Nicolas : Merge tag 'v09_60_00' into develop +* 2022-10-04 Fran Nicolas : Merge branch 'release/v09_60_00' +* 2022-10-04 Fran Nicolas : Update to larsoft v09_60_00 +* 2022-09-27 Fran Nicolas : Merge tag 'v09_59_00' into develop From 5320fb58b14206821cfc7f6998e9ac8549886c58 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Wed, 5 Oct 2022 16:18:38 -0500 Subject: [PATCH 0315/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index eb6a38d50..0388fa2f8 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_02_01 as of 9/2022) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_03_00 as of 10/2022) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` @@ -55,7 +55,7 @@ If you're doing development work, then you'll want to be able to create a develo 1. Setup the `mrb` environment: ```bash -setup mrb v5_19_05 +setup mrb v6_04_05 export MRB_PROJECT=sbndaq export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) @@ -164,7 +164,7 @@ setup sbndaq {version} -q {qualifiers} ``` 3. Create a new `localProducts` directory, _while keeping the same `srcs` directory_: ```bash -setup mrb v5_19_05 +setup mrb v6_04_05 export MRB_PROJECT=sbndaq cd mrb newDev -p @@ -192,7 +192,7 @@ export MRB_PROJECT=sbndaq ``` And then to checkout and build `sbndaq` and `sbndaq-artdaq` (most common situation) source the script below _from your work directory_: ```bash -setup sbndaq v1_02_01 -q e20:prof:s112 +setup sbndaq v1_03_00 -q e20:prof:s112 export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) echo sbndaq version: $my_sbndaq_version From eceebd6174cbd54d14e9a128a264f31b7ea5a471 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 10 Oct 2022 11:35:53 +0000 Subject: [PATCH 0316/1437] Create sbncode_v09_60_01.md --- .../Releases/sbncode_v09_60_01.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_01.md new file mode 100644 index 000000000..cc92fd3c2 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_01.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbncode_v09_60_01 +toc: true +--- + +sbncode_v09_60_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +10 October 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_60_01) has been cut and distributed. + +* sbncode (v09_60_01): + Using: + * larsoft v09_60_01 + * sbnanaobj v09_19_06 + + Includes: + * SBNSoftware/sbnanaobj add isblind flag to header #78 + * SBNSoftware/sbncode Feature/etw icarusblinding #297 + + +Extra info +--------------------------------------------------- From acda722019962e2a1a267199d19d6f9394671cb9 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 10 Oct 2022 11:36:22 +0000 Subject: [PATCH 0317/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index c2283a3d7..7dd34d3d3 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_60_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_01) |`v09_60_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_00) |`v09_59_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00) |`v09_58_02_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_58_02_01) From 7029f9d626d0e3c4382cdfea3287c85a46bf9b01 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 13 Oct 2022 21:41:26 -0500 Subject: [PATCH 0318/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 0388fa2f8..20932df18 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_03_00 as of 10/2022) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_03_01 as of 10/2022) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` @@ -192,7 +192,7 @@ export MRB_PROJECT=sbndaq ``` And then to checkout and build `sbndaq` and `sbndaq-artdaq` (most common situation) source the script below _from your work directory_: ```bash -setup sbndaq v1_03_00 -q e20:prof:s112 +setup sbndaq v1_03_01 -q e20:prof:s112 export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) echo sbndaq version: $my_sbndaq_version From bdfdc44e328a5c4b3265bdcd20623c9ca30c26cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 14 Oct 2022 16:44:35 +0000 Subject: [PATCH 0319/1437] Create ReleaseNotes096001.md --- sbndcode_wiki/Releases/ReleaseNotes096001.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096001.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096001.md b/sbndcode_wiki/Releases/ReleaseNotes096001.md new file mode 100644 index 000000000..789819226 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096001.md @@ -0,0 +1 @@ +a From acd5688601150ff1e30615f1e602fea4626d439f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 14 Oct 2022 16:45:10 +0000 Subject: [PATCH 0320/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 3a45fd048..af976f9a0 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_60_01` | Weekly release | [Release Notes](ReleaseNotes096001.html) |`v09_60_00` | Weekly release | [Release Notes](ReleaseNotes096000.html) |`v09_59_00` | Weekly release | [Release Notes](ReleaseNotes095900.html) |`v09_58_02_01` | Weekly release | [Release Notes](ReleaseNotes09580201.html) From 23acaa42a65044ddce234f04be861192ac49f37f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 14 Oct 2022 16:51:28 +0000 Subject: [PATCH 0321/1437] Update ReleaseNotes096001.md --- sbndcode_wiki/Releases/ReleaseNotes096001.md | 63 +++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/ReleaseNotes096001.md b/sbndcode_wiki/Releases/ReleaseNotes096001.md index 789819226..a8d405cce 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes096001.md +++ b/sbndcode_wiki/Releases/ReleaseNotes096001.md @@ -1 +1,62 @@ -a +--- +layout: page +title: ReleaseNotes096001 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.60.01 | 14 oct 2022 | [ReleaseNotes](ReleaseNotes096001.html) | +| --- | --- | --- | + + + +sbndcode v09_60_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_60_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_60_01/sbndcode-v09_60_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* sbndcode PR305 + * Convert CI to use SCE enabled fcls +* sbndcode PR301 + * Reset LArFFT service in CalWireSBND module + * Intended to fix sbndcode issue #300 + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* larsoft v09_60_01 +* sbncode v09_60_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-10-14 Fran Nicolas : Merge branch 'release/v09_60_01' +* 2022-10-14 Fran Nicolas : Update to larsoft v09_60_01 +* 2022-10-14 Francisco Javier Nicolás-Arnaldos : Merge pull request #304 from SBNSoftware/feature/hlay_ci +* 2022-10-14 Francisco Javier Nicolás-Arnaldos : Merge pull request #301 from SBNSoftware/feature/fnicolas_fftinit +* 2022-10-14 Fran Nicolas : Remove default fhicl values and decrease to LogInfo +* 2022-10-10 Henry Lay : Convert CI to sce fcls +* 2022-10-04 Fran Nicolas : Merge tag 'v09_60_00' into develop +* 2022-09-20 Fran Nicolas : Reset FFT service for each event +* 2022-09-20 Fran Nicolas : Add FFT parameters + +sbndutil +--------------------------------------------------- + +* 2022-10-14 Fran Nicolas : Merge tag 'v09_60_01' into develop +* 2022-10-14 Fran Nicolas : Merge branch 'release/v09_60_01' +* 2022-10-14 Fran Nicolas : Update to larsoft v09_60_01 +* 2022-10-04 Fran Nicolas : Merge tag 'v09_60_00' into develop From f8a9ec817765d64a47ed550d30ed69a40f4cc317 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:33:19 -0500 Subject: [PATCH 0322/1437] Update CAEN_DT5702_readout.md Instructions to load firmware --- sbn_online_wiki/CRT/CAEN_DT5702_readout.md | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md index 4274940a3..b247f2eff 100644 --- a/sbn_online_wiki/CRT/CAEN_DT5702_readout.md +++ b/sbn_online_wiki/CRT/CAEN_DT5702_readout.md @@ -21,6 +21,41 @@ ICARUS side and top CRT is read using CAEN DT5702 front end boards FEBs are connected to computer with Ethernet cable. They can be chained using another Ethernet port (doesn\'t matter which one). +## Firmware +Two main components of FEB are FPGA, which reads out ADCs and sends data to CPU, which then communicates with the server via Ethernet. Both FPGA and CPU can be programmed. + +Firmware can be loaded either using a JTAG programmer, or in case of newer boards, also via Ethernet. + +Programming via Ethernet bases on standalone DAQ. Here are example instructions to do it from ICARUS DAQ machine: + +``` +#1. Get permissions to use Ethernet port +/usr/libexec/ambient_cap_net_raw /bin/bash + +#2. Setup root +source /software/products/setup +setup root v6_18_04d -qe19:prof:py2 + +#3. Run root +root -l + +//4. From the root prompt, open standalone DAQ on a specified Ethernet port +.x FEBDAQMULT.C+("ethernet_port_name") + +//5. Select FEB you want to program using the graphical interface of standalone DAQ + +//6. Load either FPGA or CPU firmware with the following commands +UpdateFPGA("fpga_firmware_file") // this updates FPGA file +UpdateFW("cpu_firmware_file") // this updates CPU firmware +``` + +> **Warning** +> There is no safety mechanism preventing you from loading any file into the FEB! +> Loading wrong file into either CPU or FPGA will render FEB unusable. +> Always make sure that you load a correct file to correct component. +> - Typical names for the CPU firmware is FEB_rev3_IAPX.xxx.bin +> - Typical names for the FPGA firmware are Top.bit or Top.mcs + ## febdrv From 7dd3ac210279fa134cba8db31f67787bc194b40c Mon Sep 17 00:00:00 2001 From: eyandel Date: Tue, 18 Oct 2022 16:26:37 -0500 Subject: [PATCH 0323/1437] Create sbnd_grafana_tutorial.md --- sbn_online_wiki/sbnd_grafana_tutorial.md | 81 ++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 sbn_online_wiki/sbnd_grafana_tutorial.md diff --git a/sbn_online_wiki/sbnd_grafana_tutorial.md b/sbn_online_wiki/sbnd_grafana_tutorial.md new file mode 100644 index 000000000..0833d4289 --- /dev/null +++ b/sbn_online_wiki/sbnd_grafana_tutorial.md @@ -0,0 +1,81 @@ +--- +layout: page +title: SBND Grafana Tutorial +--- + + + +Opening grafana on the daq +======================================================================================================================== +The grafana page is hosted on the machine you’re running from/your area is configured for (currently for the ND building this is almost always evb04). +If you change machines the page does not move with you. + +You have to access the daq machines to see the page(s) so you need the same prerequisites (i.e. a daq account and/or to be added to the sbnd daq account, +be connected to the Fermilab network bia fgz or the vpn). + + + +DAQ config side +-------------------------------------------------- + +To send artdaq metrics to it, you need the following fhicl +snippet: + + metrics:{ + + graphite:{ + level: 5 + metricPluginType: "graphite" + reporting_interval: 1.0 + host: "sbn-evb04.fnal.gov" + port: 2003 + namespace: "artdaq.[name]" + } + + } + +Namespace can be what you like, but the host and port should be that\... + + + +Grafana viewing +-------------------------------------------------- + +Log in to sbn-daq02 with port forwarding + + ssh -L 3000:localhost:3000 sbn-daq02.fnal.gov + +Open your own browser and navigate to localhost:3000. You should be +greeted with a login screen. Ask Wes for details to log in. + +If the metric you want to display on Grafana is already monitored by a script running on evb machines then you only need to add a new panel on Grafana. +- Login to Grafana as “admin” user (ask for the password) +- Go to the page you want to edit +- Click on “Add Panel” on the top right of the page: + + +![immagine](https://user-images.githubusercontent.com/97683442/176135913-9adc14ba-2d0a-4325-b1a8-10f65c893ac6.png) + +- Click on “Add an empty panel” + +![immagine](https://user-images.githubusercontent.com/97683442/176136223-c6db09c8-6f74-43b4-9764-4251ec995872.png) + +- Modify the title and add a description in “Panel options” on the right +- Go to select metric and select: + - Icarus + - The machine or the component you want to monitor + - the partition you want to monitor + - the metric you are interested to monitor +- Click on “Time series” on the the top right part of the page and select the type of visualization you want to use for the monitoring (Graph, Gauge, Table etc) + +![immagine](https://user-images.githubusercontent.com/97683442/176136353-2e4a4b4c-942d-4476-b723-a84970614182.png) + +- Scroll down in the right part of the page and change properly the Units + +![immagine](https://user-images.githubusercontent.com/97683442/176136441-56537b4d-7dff-4ce9-a74d-993a6cf36ba5.png) + +- Scroll down in the right part to set the threshold, the threshold vale and the color to apply, you can click on “add threshold” to add a new threshold + +![immagine](https://user-images.githubusercontent.com/97683442/176136538-78b4804e-e4a8-419d-9688-850f51005bd7.png) + +Click on the top right blue button “Apply” and then “Save” to save your changes. From e291bc051198e19b1149a18239e73b388a473839 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 28 Oct 2022 10:53:59 +0000 Subject: [PATCH 0324/1437] Create sbncode_v09_61_00.md --- .../Releases/sbncode_v09_61_00.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00.md new file mode 100644 index 000000000..bc5e41fb9 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00.md @@ -0,0 +1,41 @@ +--- +layout: page +title: sbncode_v09_61_00 +toc: true +--- + +sbncode_v09_61_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +28 October 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_61_00) has been cut and distributed. + +* sbncode (v09_61_00): + Using: + * larsoft v09_61_00 + * sbnobj v09_14_11 + * lardataobj v09_12_00 + * sbndata v01_04 + * larcv2 v2_1_0 + + Includes: + * SBNSoftware/sbncode Add larcv2 dependency + Supera as a git submodule #284 + * SBNSoftware/sbndata Merge new version of the NuMI flux systematics file #2 + * SBNSoftware/sbncode Fix NuMI Spill accounting #305 + + +Extra info +--------------------------------------------------- From 88b4bbf99214b17f00528709465b3c48b0e05b58 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 28 Oct 2022 10:54:49 +0000 Subject: [PATCH 0325/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 7dd34d3d3..c8e9c0421 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_61_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00) |`v09_60_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_01) |`v09_60_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_00) |`v09_59_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_59_00) From 2c46e39fdbeb353a635b91f2ac278e040c3e7775 Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 09:36:37 -0500 Subject: [PATCH 0326/1437] Create building_access.md --- sbndcode_wiki/building_access.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 sbndcode_wiki/building_access.md diff --git a/sbndcode_wiki/building_access.md b/sbndcode_wiki/building_access.md new file mode 100644 index 000000000..03ed14056 --- /dev/null +++ b/sbndcode_wiki/building_access.md @@ -0,0 +1,10 @@ +------------------------------ +ND and FD Building Access Instructions +----------------------------- + +1. Read the training handout found on the Fermilab training page. +2. Complete the training test online. +3. Contact Carrie McGivern (mcgivern@fnal.gov or on slack) with your ID number and full name (and potentially with your advisor/Fermilab sponser cc'd). + +ND training link: https://www-esh.fnal.gov/pls/cert/schedule.show_course_details?cid=10140 +FD training link: https://www-esh.fnal.gov/pls/cert/schedule.show_course_details?cid=9880 From 74ea59f2ca6dff6b8e81b9332816bd5a530a9f59 Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 09:52:03 -0500 Subject: [PATCH 0327/1437] Create Getting_a_DAQ_account.md --- sbn_online_wiki/Getting_a_DAQ_account.md | 26 ++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 sbn_online_wiki/Getting_a_DAQ_account.md diff --git a/sbn_online_wiki/Getting_a_DAQ_account.md b/sbn_online_wiki/Getting_a_DAQ_account.md new file mode 100644 index 000000000..903006078 --- /dev/null +++ b/sbn_online_wiki/Getting_a_DAQ_account.md @@ -0,0 +1,26 @@ +------------------------------ +Getting an account for the SBND DAQ servers (at ND or DAB teststand) +----------------------------- + +1. Log into fermi.service-now.com with your FNAL services account + +![image](https://user-images.githubusercontent.com/29582622/198656450-1fb54811-b8fa-4614-a7f1-c5d460394515.png) + +2. Click “Browse Services" + +![image](https://user-images.githubusercontent.com/29582622/198657653-8dbd190e-2b05-4811-9f4c-a2e71509bf93.png) + +3. Find the Test Stand option +4. Click “Test Stands” +5. Click “Scientific Test Stand Computing” + +![image](https://user-images.githubusercontent.com/29582622/198657983-efcf4e05-ce40-424a-a8c9-e13e7c58b07b.png) + +6. Click “Test Stand Computer Request” + +![image](https://user-images.githubusercontent.com/29582622/198658470-bf358319-f429-485b-9732-b2ead9e6bbed.png) + +7. Fill out and submit form + +![image](https://user-images.githubusercontent.com/29582622/198659288-29c7f765-fc67-4e28-a3e4-21ca76d76fd3.png) + From 18469219f2785b2191d69d54e3eeb7f533a844eb Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 09:53:20 -0500 Subject: [PATCH 0328/1437] Update Getting_a_DAQ_account.md --- sbn_online_wiki/Getting_a_DAQ_account.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbn_online_wiki/Getting_a_DAQ_account.md b/sbn_online_wiki/Getting_a_DAQ_account.md index 903006078..a1245f1f9 100644 --- a/sbn_online_wiki/Getting_a_DAQ_account.md +++ b/sbn_online_wiki/Getting_a_DAQ_account.md @@ -1,3 +1,8 @@ +--- +layout: page +title: Getting a SBND DAQ account +--- + ------------------------------ Getting an account for the SBND DAQ servers (at ND or DAB teststand) ----------------------------- From 2e2018f9846a3b96d35e8317a4d7793068b360af Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 09:54:37 -0500 Subject: [PATCH 0329/1437] Update building_access.md --- sbndcode_wiki/building_access.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbndcode_wiki/building_access.md b/sbndcode_wiki/building_access.md index 03ed14056..4aeaad0e8 100644 --- a/sbndcode_wiki/building_access.md +++ b/sbndcode_wiki/building_access.md @@ -1,3 +1,8 @@ +--- +layout: page +title: ND and FD Building Access Instructions +--- + ------------------------------ ND and FD Building Access Instructions ----------------------------- From 09bac222571483c6ecc06eca96d21595ce7b089b Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 10:28:40 -0500 Subject: [PATCH 0330/1437] add link to daq account and nd/fd building access --- sbndcode_wiki/Wiki.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode_wiki/Wiki.md b/sbndcode_wiki/Wiki.md index 5e3246a18..53ec7eb60 100644 --- a/sbndcode_wiki/Wiki.md +++ b/sbndcode_wiki/Wiki.md @@ -118,7 +118,7 @@ Useful Tidbits of Information. [Newbie Material](Newbie_Material.html) -------------------------------------------------------------------------------------- - +- [Getting ND/FD Building Access](building_access.html) [Vertical Slice Test](Vertical_Slice_Test.html) @@ -126,7 +126,7 @@ Useful Tidbits of Information. [DAQ](DAQ.html) -------------------------------------------------------------------------------------------------- - +- [Getting a DAQ Account](https://sbnsoftware.github.io/sbn_online_wiki/Getting_a_DAQ_account.html) [SBND Assembly Master Document](SBND_Assembly_Master_Document.html) ------------------------------------------------------------------------------------------------------------------------------------- From f96ebdab5dc945cfc13bfbf758925f01b8b08e9b Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 10:35:17 -0500 Subject: [PATCH 0331/1437] added some more links --- sbndcode_wiki/DAQ.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/DAQ.md b/sbndcode_wiki/DAQ.md index 99f18751b..a43d8b6ef 100644 --- a/sbndcode_wiki/DAQ.md +++ b/sbndcode_wiki/DAQ.md @@ -14,7 +14,9 @@ SBND DAQ Wiki page for the SBND DAQ - +- [Getting a DAQ Account](https://sbnsoftware.github.io/sbn_online_wiki/Getting_a_DAQ_account.html) +- [ND/FD Building Access](https://sbnsoftware.github.io/sbndcode_wiki/building_access.html) +- [SBN DAQ Wiki](https://sbnsoftware.github.io/sbn_online_wiki/sbndaq_Wiki.html) [CABCON Information](CABCON_Information.html) -------------------------------------------------------------------------------------------------------------------- From c3fc682c893868ad821e9322511a5f430a8fefcc Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 10:36:54 -0500 Subject: [PATCH 0332/1437] Update Wiki.md --- sbndcode_wiki/Wiki.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sbndcode_wiki/Wiki.md b/sbndcode_wiki/Wiki.md index 53ec7eb60..ef1c4c720 100644 --- a/sbndcode_wiki/Wiki.md +++ b/sbndcode_wiki/Wiki.md @@ -109,6 +109,7 @@ Useful Tidbits of Information. - [Generation FHICL Files](simulation/sbnd_generation_fhicls) - [LArSoft Filters](simulation/sbnd_filters) - [SBND Trigger](SBND_Trigger.html) +- [Getting ND/FD Building Access](building_access.html) [Code management and deployment stuff](Code_management_and_deployment_stuff.html) @@ -118,7 +119,6 @@ Useful Tidbits of Information. [Newbie Material](Newbie_Material.html) -------------------------------------------------------------------------------------- -- [Getting ND/FD Building Access](building_access.html) [Vertical Slice Test](Vertical_Slice_Test.html) @@ -126,7 +126,6 @@ Useful Tidbits of Information. [DAQ](DAQ.html) -------------------------------------------------------------------------------------------------- -- [Getting a DAQ Account](https://sbnsoftware.github.io/sbn_online_wiki/Getting_a_DAQ_account.html) [SBND Assembly Master Document](SBND_Assembly_Master_Document.html) ------------------------------------------------------------------------------------------------------------------------------------- From 52c44dd2bfbadfbdc2eaa8b05caa6e14190e610b Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 14:00:18 -0500 Subject: [PATCH 0333/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 93 ++++++++++++----------- 1 file changed, 48 insertions(+), 45 deletions(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 3da3b6076..3e14b4709 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -1,43 +1,7 @@ - ------------------------------- -## other CRT \#\# setup info ------------------------------ - -1730 digitizer channels: - -even channels have no inputs - -ch1: - TRIGGER from PTB to 1730 - -ch3: - RWM - -ch5: - RWM - -ch7: - RWM - -ch9: - BES - -ch11: - RWM - -ch13: - RWM - -ch15: - TRIGGER from PTB to 1730 - -WR TDC inputs: - -ch1: t0 reset from CRT fanout (32 ns cable) - -ch2: t1 reset from CRT fanout (32 ns cable) - -ch3: empty - -ch4: empty - -ch5: empty - -CRT T0 reset: PPS - -CRT T1 reset: BES from AD's fiber to TTL converter +--- +layout: page +title: SBND CRT## DAQ Getting Started +--- ------------------------------ ## DAQ instructions for the CRT \#\# @@ -49,9 +13,9 @@ open two terminal windows. For each - (optional: start a tmux or screen session) - source "crt_launchdaq.sh" - In one window, type "DAQInterface" or "DAQInterface &" + In one window, type "DAQInterface" or "DAQInterface &". This will now have the DAQ interface running. Messages will be displayed here but it can no longer take in commands from this terminal. -(NOTE: You can not close the terminal, disconnect it from the internet, close your laptop, etc. when the DAQInterface is open in your terminal or the DAQ will disconnect. Additionally, when running the DAQ, a Message Viewer window opens from this terminal. Running in a screen or tmux session on evb04 allows to disconnect from the screen/tmux session without crashing the DAQ. The Message Viewer will remain visible until you exit the evb04 ssh session or close the window. There is no way to reopen it again without starting a new run. Using a VNC (instructions to come) can help get around this issue.) +(NOTE: You can not close the terminal, disconnect it from the internet, close your laptop, etc. when the DAQInterface is open in your terminal or the DAQ will disconnect. Additionally, when running the DAQ, a Message Viewer window opens from this terminal. Running in a screen or tmux session on evb04 allows to disconnect from the screen/tmux session without crashing the DAQ. The Message Viewer will remain visible until you exit the evb04 ssh session or close the window. There is no way to reopen it again without starting a new run. Using a VNC (instructions to come) can help get around this issue. You must close the Message Viewer before exiting from evb04 or it will not exit.) In the other window, (1) look at the file "run" and find the line with setdaqcomps.sh @@ -61,16 +25,17 @@ open two terminal windows. For each - crt2x2dwnstr is just what it sounds like - all 4 modules on the downstream (north) frame - crt_test is the test setup on the A-frame - ptb01 is the trigger board + - the available configurations for the PTB are in /home/nfs/sbnd/ptb_sacred_configs/sbnd_config/. Descriptions of them are in a .txt file in that directory. If you need a configuration not listed, or the one you want is outdated, talk to the PTB people (currently Jon Sensenig and Tereza Kroupova). * if PULL is after any of those names, then the system data is pulled by the DAQ instead of pushed to the DAQ. Only one system can push data. (2) check the file boot.txt, things work best if the machine where you are running the daq is the one assigned to the eventbuilder and dispatcher here Type ./run to start the run and type ./stop to stop the run - The data will magically appear in /daq/scratch/crtdata/. It is suggested to make a directory for your data here and move it there at the end of the day each day. + The data will magically appear in /daq/scratch/crtdata/ (or possibly /daq/scratch/offbeamdata/ or something else for other specific tests). This directory is set in the event builder fcl. boot.txt is where the event builder fcl being used is set. It is suggested to make a directory for your data here and move it there at the end of the day each day. (3) setup - specified in knownboardreaders.txt - pmtx03 boardreader is on sbnd-pds03 + pmtx03 boardreader is on sbnd-pds02 crt board readers are on sbnd-pds05 WR board reader is on sbnd-clk01 PTB board reader is on sbnd-ptb01 @@ -101,9 +66,47 @@ in the FHiCL file (dec): 74 85 87 88 doesn't match list of 0 detected FEBs: BEGI ---- BernCRTData VerifyMACConfiguration() List of 4 FEBs declared in the FHiCL file (dec): 74 85 87 88 doesn't match list of 0 detected FEBs: END - +If you encounter some problem and don't know what caused it please post to the sbnd_crt_2x2 or sbnd_daq slack channels, or contact one of the CRT## or SBND DAQ team directly. + +------------------------------ +## other CRT \#\# setup info +----------------------------- + +1730 digitizer channels: + +even channels have no inputs + +ch1: - TRIGGER from PTB to 1730 + +ch3: - RWM + +ch5: - RWM +ch7: - RWM + +ch9: - BES + +ch11: - RWM +ch13: - RWM + +ch15: - TRIGGER from PTB to 1730 + +WR TDC inputs: + +ch1: t0 reset from CRT fanout (32 ns cable) + +ch2: t1 reset from CRT fanout (32 ns cable) + +ch3: empty + +ch4: empty + +ch5: empty + +CRT T0 reset: PPS + +CRT T1 reset: BES from AD's fiber to TTL converter From 37d24a5d2ef991cb45b5a6cc83841443bec8dade Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Fri, 28 Oct 2022 14:15:53 -0500 Subject: [PATCH 0334/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 20932df18..580dcbf01 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_03_01 as of 10/2022) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_04_00 as of 10/2022) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` From 1abec4724f2c5756b8dd2927649051f69c7f6830 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Fri, 28 Oct 2022 14:17:35 -0500 Subject: [PATCH 0335/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 580dcbf01..e97bd6528 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -192,7 +192,7 @@ export MRB_PROJECT=sbndaq ``` And then to checkout and build `sbndaq` and `sbndaq-artdaq` (most common situation) source the script below _from your work directory_: ```bash -setup sbndaq v1_03_01 -q e20:prof:s112 +setup sbndaq v1_04_00 -q e20:prof:s112 export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) echo sbndaq version: $my_sbndaq_version From e8e1e64cd3dc402cf1e90cfe02b64db941b2868b Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 14:43:51 -0500 Subject: [PATCH 0336/1437] Update sbnd_grafana_tutorial.md --- sbn_online_wiki/sbnd_grafana_tutorial.md | 134 ++++++++++++++++------- 1 file changed, 93 insertions(+), 41 deletions(-) diff --git a/sbn_online_wiki/sbnd_grafana_tutorial.md b/sbn_online_wiki/sbnd_grafana_tutorial.md index 0833d4289..9d007ece4 100644 --- a/sbn_online_wiki/sbnd_grafana_tutorial.md +++ b/sbn_online_wiki/sbnd_grafana_tutorial.md @@ -10,72 +10,124 @@ Opening grafana on the daq The grafana page is hosted on the machine you’re running from/your area is configured for (currently for the ND building this is almost always evb04). If you change machines the page does not move with you. -You have to access the daq machines to see the page(s) so you need the same prerequisites (i.e. a daq account and/or to be added to the sbnd daq account, -be connected to the Fermilab network bia fgz or the vpn). +You have to access the daq machines to see the page(s) so you need the same prerequisites (i.e. [a daq account](https://sbnsoftware.github.io/sbn_online_wiki/Getting_a_DAQ_account.html) and/or to be added to the sbnd daq account, and +be connected to the Fermilab network via fgz or the vpn). +[basic instructions, username, password for "shifter" account (read-only mode)](https://docs.google.com/document/d/1mY7KaxYovwkJVUsrGSySnFWvQB85bZmpXOT_wONjcEc/edit?usp=sharing) +these instructions (also shown below) are to use your own browser. You could also use a VNC session on the daq machine if it is setup (not currently working). +1. Connect to fgz or the vpn +2. kinit -f (if haven’t already that day) +3. Tunnel to the daq machine hosting the page (has to go through gateway so 2 tunnels needed). + + In a terminal: + + ssh -KL localhost:10089:localhost:10080 sbnd@sbnd-gateway01.fnal.gov 'ssh -KL localhost:10080:localhost:10080 sbnd@sbnd-evb04.fnal.gov' -DAQ config side +if for some reason you are not added to the sbnd k5login but do have a daq account then try replacing sbnd@ with your username@ instead +the terminal running this may say “Pseudo-terminal will not be allocated because stdin is not a terminal.” This is fine and you can ignore it. + +If someone else is also forwarding this it may have a different message to say something about the port not being available or “already in use”. You can ignore this too. + +The terminal is now going to just hang, you can not use it, close it, put your computer to sleep, leave internet/the vpn, etc. or the connection will drop (at which point you just need to do the tunnel command again to reconnect). +To exit use Ctrl-C. + + +4. Open a browser and go to http://localhost:10089 + The username and password for read-only (“shifter”) mode is in the google doc linked earlier + +5. Pick the page you want + +And now you’re there! When a run is happening the information will be all filled in. You can click on the arrows to collapse/expand sections, view a larger version of a graph, inspect/export data points, etc. Feel free to play around, in read-only mode you won’t hurt anything. + +Making your own page -------------------------------------------------- -To send artdaq metrics to it, you need the following fhicl -snippet: +If you already have some metrics you want to output (e.g. about the EventBuilder you are using, or you just want a big display of your run number (partition dependent) or you want different pages for the CRT teststand vs CRT## setup, or you followed the steps after this to make your own already, etc.) +All steps up to the login are the same as before. But now we need to login as an admin with write-privileges. - metrics:{ +1. Logout. This will take you back to the login page. Ask someone for the admin username and password if you don’t know it and log back in with that. **It will ask you if you want to change the password. PRESS SKIP (bottom left). Please do not change the password.** +2. Make a new page. To start from a copy of an exisisting page go to the page and navigate to the settings. Click the “Save As…” button on the side. Pick a name for your new dashboard and click save. It will automatically take you to the new page. - graphite:{ - level: 5 - metricPluginType: "graphite" - reporting_interval: 1.0 - host: "sbn-evb04.fnal.gov" - port: 2003 - namespace: "artdaq.[name]" - } - } +Adding a new graph +-------------------------------------------------- +1. Click “add panel” (upper right next to save button). +2. You can add a new panel, look through pre-made ones, or add a new row (the categories the panels are grouped into). Pick "add a new panel". + +![image](https://user-images.githubusercontent.com/29582622/198715540-968cd492-2818-491b-be0d-9d277821b32b.png) + +3. Choose the metric. It will be nested within a path (set in the fcl, see below). The name is set by the piece of code outputting the metric (see below). You can also click the pencil and just type the metric out (as opposed to the drop down menus), which lets you more easily add wildcards to show this metric for multiple boardreaders or eventbuilders for example. ![image](https://user-images.githubusercontent.com/29582622/198716084-6f2333e8-2e95-4863-9780-be4712a5e773.png) -Namespace can be what you like, but the host and port should be that\... +4. Click the top right corner to choose a graph type. There are many different types, try going through to find what you think fits the data/purpose of the graph best. ![image](https://user-images.githubusercontent.com/29582622/198716250-4619ebb2-e05b-4203-9e60-7dad34ee2902.png) +5. The right panel has a bunch of options on formatting, coloring, units, title, legend, etc. Scroll down and play with things to get the information to look how you want. +**Note:** Sometimes the metric does not show up on the plot (for example when it’s from a new boardreader or it’s a new metric you just made). +The data is being sent but the the metric graphing needs to be turned on in the “Transform” tab. Make sure there is a check next to both “Time” (if the graph uses time) and all the metrics you want from all the sources you want it from. +![image](https://user-images.githubusercontent.com/29582622/198716765-22ded138-20b4-42c5-9bc5-b7f26dbf89d6.png) -Grafana viewing +6. When done click “Apply” and “Save”. Click “Discard” to leave the panel editor without saving your changes. +7. The new graph will be at the top of the page, click the top of the panel and drag to move it into place. If you want to move it to a “row” lower on the page it’s typically easiest to collapse rows above that one and then drag it where you want within the row. Resize the panel using the bottom right corner. + + +You can also easily make a graph from an existing graph by using “duplicate”(under "More" in the grpah drop down menu) and then editing the duplicate. This will put the new duplicate right next to/above/below the current one instead of at the top of the page. + + +8. Save the page using the “save dashboard” button in the upper right corner. + +Sending metrics to grafana -------------------------------------------------- -Log in to sbn-daq02 with port forwarding +Metrics can be sent from any piece of code being run by the daq (a boardreader, an eventbuilder, a producer, filter, or analyzer module being run on the built events in the daq, etc.) +If there are already metrics in the code being run (or you are just preparing to add some), setup graphite in the fcl to send to grafana. +typically done in the \*\*\_standard.fcl. Look at some of the other fcls in /configs/standard directory for examples. - ssh -L 3000:localhost:3000 sbn-daq02.fnal.gov -Open your own browser and navigate to localhost:3000. You should be -greeted with a login screen. Ask Wes for details to log in. +To send artdaq metrics to grafana, you need the following fhicl +snippet: -If the metric you want to display on Grafana is already monitored by a script running on evb machines then you only need to add a new panel on Grafana. -- Login to Grafana as “admin” user (ask for the password) -- Go to the page you want to edit -- Click on “Add Panel” on the top right of the page: + metrics:{ + graphite:{ + level: 10 + metricPluginType: "graphite" + reporting_interval: 10.0 + host: "10.226.36.34" + port: 2003 + namespace: "artdaq.[name]" + } + + } + +Namespace can be what you like, but the host and port should be that for sbnd-evb04. -![immagine](https://user-images.githubusercontent.com/97683442/176135913-9adc14ba-2d0a-4325-b1a8-10f65c893ac6.png) +Change the namespace in your actual running fcl so you know where the metric comes from +otherwise every system using \*\*\_standard.fcl will be named the same thing and it will be hard/impossible to tell which is which. +Try to pick a short but clear name that you don’t plan on changing (so try to avoid temporary ones and just settle on a final naming scheme, e.g. the crt is crt\[plane\]\[boardreader-number\]). Example: crt2x2upstr.fcl ![image](https://user-images.githubusercontent.com/29582622/198718362-d153eedd-f215-438a-98b9-b7ce53767d09.png) -- Click on “Add an empty panel” -![immagine](https://user-images.githubusercontent.com/97683442/176136223-c6db09c8-6f74-43b4-9764-4251ec995872.png) -- Modify the title and add a description in “Panel options” on the right -- Go to select metric and select: - - Icarus - - The machine or the component you want to monitor - - the partition you want to monitor - - the metric you are interested to monitor -- Click on “Time series” on the the top right part of the page and select the type of visualization you want to use for the monitoring (Graph, Gauge, Table etc) +Making a new metric +-------------------------------------------------- + +1. Decide where the metric should be. + - For example, if you want to monitor something about one piece of hardware regardless of pull windows, eventbuilder settings, downstream filters, etc. then consider putting the metric in the boardreader code where it is set/read/added to a fragment. For an event level metric (aka only want the information being pulled or need multiple subsystems info) use a downstream producer/analyzer/filter. -![immagine](https://user-images.githubusercontent.com/97683442/176136353-2e4a4b4c-942d-4476-b723-a84970614182.png) +2. Calculate the metric (just like any normal variable). +3. Make sure the code has the metric manager included + - should have #include "artdaq/DAQdata/Globals.hh" and using artdaq::MetricMode; or an equivalent + - typically boardreaders and things already have this all set up. Use one as an example if needed. I have an example of a producer and a filter with it (for the trigger) if anyone wants to setup a producer/analyzer/filter and needs an example. -- Scroll down in the right part of the page and change properly the Units +4. Send out the metric. + - need to check that metric manger is on so no errors occur if it gets turned off in the fcl or on standalone tests, put code in if statement: if(metricMan != nullptr) + - code: metricMan->sendMetric(“\[name_of_metric\]”, \[variable being sent\], “\[units of metric\]”, \[level\], \[mode of variable to send, see [MetricData.hh](https://cdcvs.fnal.gov/redmine/projects/artdaq-utilities/repository/revisions/stable/entry/artdaq-utilities/Plugins/MetricData.hh)\]); + - Example from CRTMetricProducer_module.cc: ![image](https://user-images.githubusercontent.com/29582622/198718969-03ac7f7b-f0e0-4b5c-a4d4-ff038f9d2351.png) -![immagine](https://user-images.githubusercontent.com/97683442/176136441-56537b4d-7dff-4ce9-a74d-993a6cf36ba5.png) +5. Recompile your daq area (make sure no one is using it). +6. Make sure the code you made is set up to run and send out grafana metrics by editing the fcl as shown earlier if necessary (if you need to run a new producer/filter/analyzer module in the daq and don’t know how then feel free to ask someone or use the software filter setup as an example). +7. Start a run. If you’re running the code with the new metrics then they should now show up in grafana and you can follow the earlier steps to add a new panel for it. +8. You’re done! Enjoy your new monitoring tool. -- Scroll down in the right part to set the threshold, the threshold vale and the color to apply, you can click on “add threshold” to add a new threshold -![immagine](https://user-images.githubusercontent.com/97683442/176136538-78b4804e-e4a8-419d-9688-850f51005bd7.png) -Click on the top right blue button “Apply” and then “Save” to save your changes. From ca5587eb781e356a7dc861800d60951a31ce7fad Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 14:45:25 -0500 Subject: [PATCH 0337/1437] Update DAQ.md --- sbndcode_wiki/DAQ.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sbndcode_wiki/DAQ.md b/sbndcode_wiki/DAQ.md index a43d8b6ef..a2e3961c2 100644 --- a/sbndcode_wiki/DAQ.md +++ b/sbndcode_wiki/DAQ.md @@ -8,15 +8,13 @@ title: SBND DAQ SBND DAQ ========================================================== -- **Table of contents** -- [SBND DAQ] - - [CABCON Information] - Wiki page for the SBND DAQ - [Getting a DAQ Account](https://sbnsoftware.github.io/sbn_online_wiki/Getting_a_DAQ_account.html) - [ND/FD Building Access](https://sbnsoftware.github.io/sbndcode_wiki/building_access.html) - [SBN DAQ Wiki](https://sbnsoftware.github.io/sbn_online_wiki/sbndaq_Wiki.html) +- [CRT## DAQ Getting Started](https://sbnsoftware.github.io/sbndaq_oldwiki/SBND_DAQ_GettingStarted.html) +- [SBND Grafana Tutorial](https://sbnsoftware.github.io/sbn_online_wiki/sbnd_grafana_tutorial.html) [CABCON Information](CABCON_Information.html) -------------------------------------------------------------------------------------------------------------------- From 9873f659d43bfdf45e67a9117abb0d20a1439507 Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 28 Oct 2022 15:48:31 -0500 Subject: [PATCH 0338/1437] Update SBND_DAQ_GettingStarted.md --- sbndaq_oldwiki/SBND_DAQ_GettingStarted.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md index 3e14b4709..8bd17c1fe 100644 --- a/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md +++ b/sbndaq_oldwiki/SBND_DAQ_GettingStarted.md @@ -76,7 +76,7 @@ If you encounter some problem and don't know what caused it please post to the s even channels have no inputs -ch1: - TRIGGER from PTB to 1730 +ch1: - FLASH TRIGGER from PTB to 1730 ch3: - RWM @@ -90,19 +90,20 @@ ch11: - RWM ch13: - RWM -ch15: - TRIGGER from PTB to 1730 +ch15: - EVENT TRIGGER from PTB to 1730 WR TDC inputs: -ch1: t0 reset from CRT fanout (32 ns cable) +SPEC TDC inputs +ch 1 - CRT t0 reset -ch2: t1 reset from CRT fanout (32 ns cable) +ch 2 - CRT t1 reset -ch3: empty +ch 3 - Flash Trigger -ch4: empty +ch 4 - RWM -ch5: empty +ch 5 - currently empty (event trigger coming) CRT T0 reset: PPS From 37827124673ee30d078b46064e8ce20defbd88c8 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 1 Nov 2022 11:40:47 +0000 Subject: [PATCH 0339/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index c8e9c0421..12a7ce4e3 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_61_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00_01) |`v09_61_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00) |`v09_60_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_01) |`v09_60_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_00) From 3b86b290658374137bb32ea2602d0e86015918f3 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 1 Nov 2022 11:52:29 +0000 Subject: [PATCH 0340/1437] Create sbncode_v09_61_00_01.md --- .../Releases/sbncode_v09_61_00_01.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00_01.md new file mode 100644 index 000000000..3990b0b60 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00_01.md @@ -0,0 +1,33 @@ +--- +layout: page +title: sbncode_v09_61_00_01 +toc: true +--- + +sbncode_v09_61_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +01 November 2022 + +Purpose +--------------------------------------------------- +* Patch release + +New features +--------------------------------------------------- +A patch release of sbncode (v09_61_00_01) has been cut and distributed. + +* sbncode (v09_61_00_01): + Using: + * sbnobj v09_14_11 + * lardataobj v09_12_00 + + +Extra info +--------------------------------------------------- From f655077207010090edb9dd950a7462e2e71d89a2 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 1 Nov 2022 11:52:57 +0000 Subject: [PATCH 0341/1437] Update sbncode_v09_61_00.md --- .../ReleaseManagement/Releases/sbncode_v09_61_00.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00.md index bc5e41fb9..f66182faa 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00.md @@ -26,8 +26,7 @@ A weekly release of sbncode (v09_61_00) has been cut and distributed. * sbncode (v09_61_00): Using: * larsoft v09_61_00 - * sbnobj v09_14_11 - * lardataobj v09_12_00 + * sbndata v01_04 * larcv2 v2_1_0 From 0453edebf1604726bebc6ce6c29a78d7382ee13d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Wed, 2 Nov 2022 10:52:16 +0000 Subject: [PATCH 0342/1437] Create ReleaseNotes09610001.md --- .../Releases/ReleaseNotes09610001.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09610001.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09610001.md b/sbndcode_wiki/Releases/ReleaseNotes09610001.md new file mode 100644 index 000000000..677ab5e70 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09610001.md @@ -0,0 +1,55 @@ +--- +layout: page +title: ReleaseNotes09610001 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.61.00.01 | 02 nov 2022 | [ReleaseNotes](ReleaseNotes09610001.html) | +| --- | --- | --- | + + + +sbndcode v09_61_00_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_61_00_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_61_00_01/sbndcode-v09_61_00_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- +* sbndcode PR305 + * Turn off newly added blinding code in cafmaker for MC since it's only needed for data + +Updated dependencies +--------------------------------------------------- +* larsoft v09_61_00 +* sbncode v09_61_00_01 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-11-02 Fran Nicolas : Merge branch 'release/v09_61_00_01' +* 2022-11-02 Fran Nicolas : Update to larsoft v09_61_00 +* 2022-10-31 Francisco Javier Nicolás-Arnaldos : Merge pull request #305 from SBNSoftware/feature/jlarkin_nomcblinding +* 2022-10-18 Jacob Larkin : Turn off blinding in cafmaker for MC +* 2022-10-14 Fran Nicolas : Merge tag 'v09_60_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-11-02 Fran Nicolas : Merge tag 'v09_61_00_01' into develop +* 2022-11-02 Fran Nicolas : Merge branch 'release/v09_61_00_01' +* 2022-11-02 Fran Nicolas : Update to larsoft v09_61_00 +* 2022-10-14 Fran Nicolas : Merge tag 'v09_60_01' into develop From c4283f1b3c265b8af3b632e62ebae3c833ef489e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Wed, 2 Nov 2022 10:53:01 +0000 Subject: [PATCH 0343/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index af976f9a0..8bebd9f09 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_61_00_01` | Weekly release | [Release Notes](ReleaseNotes09610001.html) |`v09_60_01` | Weekly release | [Release Notes](ReleaseNotes096001.html) |`v09_60_00` | Weekly release | [Release Notes](ReleaseNotes096000.html) |`v09_59_00` | Weekly release | [Release Notes](ReleaseNotes095900.html) From 9336be3e4d55c9bb0eb3f53f97c991d3f87cf37f Mon Sep 17 00:00:00 2001 From: eyandel Date: Wed, 2 Nov 2022 10:37:29 -0500 Subject: [PATCH 0344/1437] Update DAQ.md --- sbndcode_wiki/DAQ.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode_wiki/DAQ.md b/sbndcode_wiki/DAQ.md index a2e3961c2..87acd6664 100644 --- a/sbndcode_wiki/DAQ.md +++ b/sbndcode_wiki/DAQ.md @@ -15,6 +15,8 @@ Wiki page for the SBND DAQ - [SBN DAQ Wiki](https://sbnsoftware.github.io/sbn_online_wiki/sbndaq_Wiki.html) - [CRT## DAQ Getting Started](https://sbnsoftware.github.io/sbndaq_oldwiki/SBND_DAQ_GettingStarted.html) - [SBND Grafana Tutorial](https://sbnsoftware.github.io/sbn_online_wiki/sbnd_grafana_tutorial.html) +- [SBND TPC DAQ (old Redmine link)](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/SBND_TPC_DAQ) +- [2018 Vertical Slice Test TPC Troubleshooting (old Redmine link)](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/Issues_with_TPC) [CABCON Information](CABCON_Information.html) -------------------------------------------------------------------------------------------------------------------- From 5990a4655e85526cd66402c2eadf8ec810b4080b Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 3 Nov 2022 11:56:35 +0000 Subject: [PATCH 0345/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 12a7ce4e3..3535976cc 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +|`v09_62_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00) |`v09_61_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00_01) |`v09_61_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00) |`v09_60_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_60_01) From 016c9ac2acf319bbc04cc6040fc43c8ae7913772 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 3 Nov 2022 12:06:14 +0000 Subject: [PATCH 0346/1437] Create sbncode_sbnana_v09_62_00.md --- .../Releases/sbncode_sbnana_v09_62_00.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00.md new file mode 100644 index 000000000..e6fa837c2 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00.md @@ -0,0 +1,45 @@ +--- +layout: page +title: sbncode_sbnana_v09_62_00 +toc: true +--- + +sbncode_sbnana_v09_62_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +03 November 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_62_00) has been cut and distributed. + +* sbncode (v09_62_00): + Using: + * larsoft v09_62_00 + * art 3.09.04 (s117) + * sbnobj v09_14_12 + * lardataobj v09_13_00 + * sbndaq_artdaq_core v1_04_00of0 (s117) + + Includes: + * SBNSoftware/sbndaq-artdaq-core wketchum v1_04_00 candidate #72 + +* sbnana (v09_62_00): + Using: + * ifdhc v2_6_9 + * sbndata v01_04 + * sbnanaobj v09_19_06 + + +Extra info +--------------------------------------------------- From 4704a868f31c1128ec3a572dac7c6bbb9a1d2281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 3 Nov 2022 16:10:19 +0000 Subject: [PATCH 0347/1437] Create ReleaseNotes096200.md --- sbndcode_wiki/Releases/ReleaseNotes096200.md | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096200.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096200.md b/sbndcode_wiki/Releases/ReleaseNotes096200.md new file mode 100644 index 000000000..bda354c1d --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096200.md @@ -0,0 +1,53 @@ +--- +layout: page +title: ReleaseNotes096200 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.62.00 | 03 nov 2022 | [ReleaseNotes](ReleaseNotes096200.html) | +| --- | --- | --- | + + + +sbndcode v09_62_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_62_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_62_00/sbndcode-v09_62_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* larsoft v09_62_00 + * art 3.09.04 (s117) +* sbncode v09_62_00 + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-11-03 Fran Nicolas : Merge branch 'release/v09_62_00' +* 2022-11-03 Fran Nicolas : Update to larsoft v09_62_00 +* 2022-11-03 Fran Nicolas : Update to artdaq_core v3_09_02 +* 2022-11-02 Fran Nicolas : Merge tag 'v09_61_00_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-11-03 Fran Nicolas : Merge tag 'v09_62_00' into develop +* 2022-11-03 Fran Nicolas : Merge branch 'release/v09_62_00' +* 2022-11-03 Fran Nicolas : Update to larsoft v09_62_00 +* 2022-11-02 Fran Nicolas : Merge tag 'v09_61_00_01' into develop From 640ec05552e29b33a91ec67c10e67f1a7390dee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 3 Nov 2022 16:12:20 +0000 Subject: [PATCH 0348/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 8bebd9f09..7074f3c8b 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_62_00`. | Weekly release | [Release Notes](ReleaseNotes096200.html) |`v09_61_00_01` | Weekly release | [Release Notes](ReleaseNotes09610001.html) |`v09_60_01` | Weekly release | [Release Notes](ReleaseNotes096001.html) |`v09_60_00` | Weekly release | [Release Notes](ReleaseNotes096000.html) From b82748892204d5759c378496e44e23ca251cd837 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 3 Nov 2022 21:29:49 +0000 Subject: [PATCH 0349/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 3535976cc..cd0893d75 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +`v09_62_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01) |`v09_62_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00) |`v09_61_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00_01) |`v09_61_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00) From c27480ae39899d2b111370e676ba755a83add1f6 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 3 Nov 2022 21:39:56 +0000 Subject: [PATCH 0350/1437] Create sbncode_v09_62_00_01.md --- .../Releases/sbncode_v09_62_00_01.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01.md new file mode 100644 index 000000000..a7e40d212 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01.md @@ -0,0 +1,35 @@ +--- +layout: page +title: sbncode_v09_62_00_01 +toc: true +--- + +sbncode_v09_62_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +03 November 2022 + +Purpose +--------------------------------------------------- +* Patch release + +New features +--------------------------------------------------- +A patch release of sbncode (v09_62_00_01) has been cut and distributed. + +* sbncode (v09_62_00_01): + Using: + * sbndaq_artdaq_core v1_04_01of0 + + Includes: + * SBNSoftware/sbndaq-artdaq-core add back CRTTranslator #73 + + +Extra info +--------------------------------------------------- From 0754a5f18265568c6bf571de5967df00bab4bc1f Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 8 Nov 2022 10:22:50 -0600 Subject: [PATCH 0351/1437] Update Boardreaders.md --- sbn_online_wiki/Boardreaders.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index 402949571..427eb1471 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -3,7 +3,7 @@ | Name | Lead developers | Documentation | Documentation Complete | | ---- | -------------- | ------------- | ---------------------- | | CRT | A.Aduszkiewicz, E.Yandel | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | -| PMT | A.Scarpelli, D. Rivera, W. Badgett | | | +| PMT | D. Rivera, W. Badgett | | | | TPC | | | | | ICARUS trigger | J.Zettlemoyer, D.Torretta, W.Ketchum | | | | SBND trigger | J. Sensenig| | | From 9cbabdf28c66c205d0710238a7503defb1e7d35c Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 8 Nov 2022 17:32:55 +0000 Subject: [PATCH 0352/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index cd0893d75..12e32b44a 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +`v09_62_00_02` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_02) `v09_62_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01) |`v09_62_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00) |`v09_61_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_61_00_01) From 9aec239799a37d4f74e01e0c48e5163a0224dc92 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 8 Nov 2022 17:42:08 +0000 Subject: [PATCH 0353/1437] Create sbncode_v09_62_00_02.md --- .../Releases/sbncode_v09_62_00_02.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_02.md new file mode 100644 index 000000000..2065f675a --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_02.md @@ -0,0 +1,40 @@ +--- +layout: page +title: sbncode_v09_62_00_02 +toc: true +--- + +sbncode_v09_62_00_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +08 November 2022 + +Purpose +--------------------------------------------------- +* Test release + +New features +--------------------------------------------------- +A test release of sbncode (v09_62_00_02) has been cut and distributed for the migration to cetmodules + +* sbncode (v09_62_00_02): + Using: + * sbnobj v09_14_12_01 + * sbnanobj v09_19_06_01 + + Includes: + * SBNSoftware/sbncode Update to cetmodules #304 + * SBNSoftware/sbnobj Update to cetmodules #70 + * SBNSoftware/sbnanaobj Update to cetmodules #82 + * DeepLearnPhysics/Supera Migrate to cetmodules and use CMake targets. #11 + + +Extra info +--------------------------------------------------- + This is a test release for icarucode and sbndcode to proceed with the migration, it is not yet been merged into develop. From fa6e17bf5e49536ab50afe42d14d773898985202 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 8 Nov 2022 13:27:33 -0600 Subject: [PATCH 0354/1437] Update ConfigDB.md --- sbn_online_wiki/ConfigDB.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/ConfigDB.md b/sbn_online_wiki/ConfigDB.md index ad7758669..d912e8bab 100644 --- a/sbn_online_wiki/ConfigDB.md +++ b/sbn_online_wiki/ConfigDB.md @@ -14,7 +14,7 @@ As a basic description, here's a step-by-step guide for making a new configurati (1) Setup database software -`source ~/DAQ_DevAreas/DAQ_SHIFTER_CURRENT/DAQInterface/setup_daqinterface.sh` +`source ~/DAQ_ProdAreas/DAQ_SHIFTER_CURRENT/DAQInterface/setup_daqinterface.sh` (2) Makes/move yourself into a clean work directory. There's a special function setup for that: @@ -52,7 +52,7 @@ From the top level of your working area (that you made in step 2), you should "i There is a concept of marking configurations as _active_ and _inactive_ -- _inactive_ configurations will not be displayed in the RC GUI and cannot be run. Typically we want to label any configuration that should not longer be used as _inactive_: configurations that are outdated, or no longer valid, or just no longer needed. -`sbndaq` has some additional DB utility functions defined that make declaring configurations active or inactive easier. With sbndaq setup (_and_ `artdaq_database` setup ... so likely do `source ~/DAQ_DevAreas/DAQ_SHIFTER_CURRENT/DAQInterface/setup_daqinterface.sh` in the current DAQInterface area to be sure to pick it up), you can issue from the commandline: +`sbndaq` has some additional DB utility functions defined that make declaring configurations active or inactive easier. With sbndaq setup (_and_ `artdaq_database` setup ... so likely do `source ~/DAQ_ProdAreas/DAQ_SHIFTER_CURRENT/DAQInterface/setup_daqinterface.sh` in the current DAQInterface area to be sure to pick it up), you can issue from the commandline: `markConfigInactive.py ` From 325f47093009e47ff3886215cbd6296bada62d55 Mon Sep 17 00:00:00 2001 From: kalradaisy <30700019+kalradaisy@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:47:52 -0600 Subject: [PATCH 0355/1437] Create NevisTPC_Wiki.md --- sbn_online_wiki/NevisTPC_Wiki.md | 114 +++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 sbn_online_wiki/NevisTPC_Wiki.md diff --git a/sbn_online_wiki/NevisTPC_Wiki.md b/sbn_online_wiki/NevisTPC_Wiki.md new file mode 100644 index 000000000..044026d23 --- /dev/null +++ b/sbn_online_wiki/NevisTPC_Wiki.md @@ -0,0 +1,114 @@ +--- +layout: page +title: Running Nevis TPCs in SBND-DAQ +--- + +**Introduction** +======================================================================================================================== +There exists various links that explain Nevis TPC hardware and software in the below webpage: +https://sbnsoftware.github.io/sbndaq_oldwiki/SBND_TPC_DAQ.html + +The very first setup needed to run Nevis TPCs in SBND-DAQ is sbndaq installation following the instructions: +https://sbnsoftware.github.io/sbndaq_oldwiki/Installation_instructions.html +The repositories can be installed on sbnd-gateway01. +* **login to gateway machine as yourself ($USER)** For running DAQ tests without making any major changes to the code +* **login to gateway machine as sbnd user** For developing code, it is advisable to use the shared account "sbnd" and install +sbndaq under DAQ_DevAreas in home directory. Developing code under shared account makes debugging easier as others +(artdaq-developers or your team members) have access to the code + +Another, very useful link that one should be familiar with before running DAQ is DAQInterface wiki: +https://cdcvs.fnal.gov/redmine/projects/artdaq-utilities/wiki/Artdaq-daqinterface +We use DAQInterface (located in srcs/sbndaq/sbn-nd/DAQInterface/) to start and stop runs so it is useful to go through the above webpage and familiarize yourself + +**Overview of Nevis TPC board reader and links to fcl file** +======================================================================================================================== +Nevis TPC boardreader is: +https://cdcvs.fnal.gov/redmine/projects/sbndaq/repository/artdaq/revisions/master/entry/sbndaq-artdaq/Generators/SBND/NevisTPC/NevisTPC2StreamNUandSNXMIT_generator.cc +which reads out two parallel data streams- +* Neutrino (Triggered data stream): using GetFEMCrateData function in the code which retrieves data out from the electronics and +write into disk. This function is being called in loop +* Supernova (continuous data stream): using GetSNData and WriteSNData functions in the code + +The BR calls configuration recipee that configures the Nevis TPC electronics and various configuration classes that are being called in BR +are in: https://cdcvs.fnal.gov/redmine/projects/sbndaq/repository/artdaq/revisions/master/show/sbndaq-artdaq/Generators/SBND/NevisTPC/nevishwutils +There are various receipes defined in the Crate class which consolidates all the different modules required to configure the electronics. + +Various fcl files to run Nevis TPC boardreader on servers in SBN-ND are in: +https://cdcvs.fnal.gov/redmine/projects/sbndaq/repository/revisions/master/show/sbn-nd/DAQInterface/configs/standard +Three sets of fcl files that are in place to run particular configuration recipe - +* fake_NevisTPC2StreamCALIB_driver.fcl and NevisTPC2StreamCALIB_driver.fcl to run with fake-data configuration and real-data respectively +using internally generated calibration triggers. +* fake_NevisTPC2StreamCTRL_driver.fcl and NevisTPC2StreamCTRL_driver.fcl to run with fake-data configuration and real-data respectively +using internally generated controller triggers. +* fake_NevisTPC2StreamEXT_driver.fcl and NevisTPC2StreamEXT_driver.fcl to run with fake-data configuration and real-data respectively +using external triggers for instance trigger from Penn Trigger Board (PTB) or from function generator. + +**ToDo's before running TPCs in DAQ** +======================================================================================================================== +* In DAQInterface directory, open boot.txt file and make sure that the host name for PMT (Process Management Tool ), Eventbuilder and Dispatcher +match the host on which DAQInterface will run for instance sbnd-tpc01-daq if running from tpc01 or sbnd-evb01-daq if running from evb01. +It is important to have -daq alongwith server/hostname. Another important point is to have debug level >=4 (maximum is 10). +* In MessageFacility.fcl, use the correct hostname (on which DAQInterface will run e.g. sbnd-evb01-daq). +* In known_boardreaders_list, check if the subsystem that you want to run is present for instance tpc## (## varies from 0-11) alongwith the correct +server name with -daq as prefix +* In critical_process_list, check if the subsystem that you want to run is present for instance tpc## (## varies from 0-11). +* In user_settings, configure boardreader timeout to 1200 if running all TPCs with all FEMs otherwise run will crash with lock error. We can also +mention the sequence of how do we want to start and stop BRs for all the TPCs using board_reader_priorities_on_start and board_reader_priorities_on_stop +respectively. Starting sequence should be tpc11 tpc10 ....tpc01 whereas, stopping sequence should be tpc01 tpc02......tpc11. +* In run script, mention the name of components that you want to run for instance to run all TPCs do- setdaqcomps.sh tpc11 tpc10 tpc09 tpc08 tpc07 tpc06 tpc05 tpc04 tpc03 tpc02 tpc01 + +**Running Nevis TPC using DAQInterface** +======================================================================================================================== +Before planning to test runs, it is always useful to inform other DAQ users. We usually do this by sending message in sbnd-daq slack channel. +This would avoid any clashes especially if two users are using same partition or running same subsystem. +We use DAQInterface to start and stop the runs following these steps: +* Open two terminals and login to sbnd-evb01 server via sbnd-gateway machine. (We can also login to any of the 11 SBND TPC servers sbnd-tpc## (## varies from 01-11) and run TPCs from sbnd-tpc machines +to test tpc running.) +* Verify that ssh pub/priv key is enabled for the user account - kdestroy; ssh sbnd-evb01-daq +* Go to DAQInterface directory (srcs/sbndaq/sbn-nd/DAQInterface/ OR one can also create a link to DAQInterface in home directory where sbndaq in installed. +* Setup DAQInterface script in both terminals - source setup_daqinterface.sh +* Open run file and mention the subsystem we want to run (in our case tpc) +* Start DAQInterface in one terminal - DAQInterface& +* Check if you are the only user running DAQInterface on specified partition - listdaqinterfaces.sh +* By default, partition 1 is set and one can switch to a different partition (2/3/4) - cd DAQInterface; Open user_sourcefile and change partition number if needed using variable DAQINTERFACE_PARTITION_NUMBER +* Always useful to check the DAQ status - status.sh . Status should be in stopped stage. Sometimes, previous run don't end up in clean way that leaves DAQInterface in configure state. +* Start run in another terminal - ./run + +**Running TPCs in push mode configuration** +======================================================================================================================== +Before we look into how to run TPCs in push and pull mode, its important that we know what are these configurations- +* Push mode: When boardreader sends data fragments to EVB as soon as they arrive. +* Pull mode with window option: In pull mode, boardreader only sends data to EVB on request, based on given time window which is currently 5 ms. + +TPC01 crate has trigger board and we want the data from all the crates to go to EVB whenever a trigger is issued by +trigger board and therefore, we will run tpc01 in push mode and all the other tpc's (tpc02-tpc11) in pull mode. + +Pull mode configurtaion can be implemented in the fcl file that we want to run which are mentioned above and are found in +https://cdcvs.fnal.gov/redmine/projects/sbndaq/repository/revisions/master/show/sbn-nd/DAQInterface/configs/standard +For pull mode, these line should be present in fragment_receiver in fcl file: + +#pull mode configuration + receive_requests: true + request_address: "227.128.11.129" #### "227.128.12.35"(icarus) # -- multicast request address + multicast_interface_ip: "10.226.36.0" ####"192.168.191.0"(icarus) # -- should match the private net + request_port: 3001 ##3502 # UDP request port + request_mode: sequence #match sequenceID of request + data_buffer_depth_fragments: 100 + data_buffer_depth_mb: 10 + #stale_request_timeout: 100000000000 #100s #turn off to default to no timeout + +Request_address and multicast_interface_ip should match the one defined in EventBuilder_standard.fcl file +https://cdcvs.fnal.gov/redmine/projects/sbndaq/repository/revisions/master/show/sbn-nd/DAQInterface/configs/standard + +This configuration runs all tpc's in pull mode. To run tpc01 in push mode, the following lines should be implemented +in tpc01.fcl https://cdcvs.fnal.gov/redmine/projects/sbndaq/repository/revisions/master/show/sbn-nd/DAQInterface/configs/standard +daq.fragment_receiver.receive_requests: false +daq.fragment_receiver.request_mode: ignored + + + + + + + + From 20649669f6c334e4b51e9a412d19bbc8c47977fa Mon Sep 17 00:00:00 2001 From: kalradaisy <30700019+kalradaisy@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:53:50 -0600 Subject: [PATCH 0356/1437] Update NevisTPC_Wiki.md --- sbn_online_wiki/NevisTPC_Wiki.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/NevisTPC_Wiki.md b/sbn_online_wiki/NevisTPC_Wiki.md index 044026d23..8633a9d8f 100644 --- a/sbn_online_wiki/NevisTPC_Wiki.md +++ b/sbn_online_wiki/NevisTPC_Wiki.md @@ -74,7 +74,7 @@ to test tpc running.) * Always useful to check the DAQ status - status.sh . Status should be in stopped stage. Sometimes, previous run don't end up in clean way that leaves DAQInterface in configure state. * Start run in another terminal - ./run -**Running TPCs in push mode configuration** +**Running TPCs in push and pull mode configuration** ======================================================================================================================== Before we look into how to run TPCs in push and pull mode, its important that we know what are these configurations- * Push mode: When boardreader sends data fragments to EVB as soon as they arrive. From 458ad454a269b2d183ef439a1cb52210f85764c2 Mon Sep 17 00:00:00 2001 From: kalradaisy <30700019+kalradaisy@users.noreply.github.com> Date: Tue, 8 Nov 2022 21:43:39 -0600 Subject: [PATCH 0357/1437] Create FTS_SBND.md --- sbn_online_wiki/FTS_SBND.md | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 sbn_online_wiki/FTS_SBND.md diff --git a/sbn_online_wiki/FTS_SBND.md b/sbn_online_wiki/FTS_SBND.md new file mode 100644 index 000000000..4aa293f65 --- /dev/null +++ b/sbn_online_wiki/FTS_SBND.md @@ -0,0 +1,41 @@ +--- +layout: page +title: File Transfer System (FTS) in SBND +--- + +**This page is under development (Wes Ketchum and Daisy Kalra)** + +**Introduction** +======================================================================================================================== +File Transfer System (FTS) periodically transfers complete events built by Event Builder to computing system. + +**Step wise instructions to setup FTS in SBND** +======================================================================================================================== + +* login to sbnd-evb01 via gateway machines (Please follow https://github.com/SBNSoftware/SBNSoftware.github.io/blob/master/sbn_online_wiki/sbndaq_Wiki.md to get the DAQ accounts if you don't have) +* Install https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/FTS_config/setup_system_for_fts.sh +* yum install osg-ca-scripts +* yum install xrootd-devel, xrootd-client-devel, libuuid-devel, openssl-devel, zlib-devel, g++ +* pip install cmake + +If you see a message to upgrade pip then follow the next step otherwise skip it. + +* pip install --upgrade pip +* pip install skbuild +* python -m pip install -U pip +* pip install scikit-build +* Follow all the steps under installation from the following link - https://cdcvs.fnal.gov/redmine/projects/filetransferservice/wiki + +After this step, a request should be made to have sbndrawuser on sbnd-evb machines / sbnd cluster along with the proxy and certificates +for sbndrawuser. Additionally, the responsible users (in this case, Wes and Daisy) need to be added to k5login to login and +get access in the sbndraw user. We opened a ticket and requested this to set this up in the same way as was done for ICARUS. +Normally, this ticket gets assigned to SLAM team and we kept Bonnie King (bonniek@fnal.gov), Scott Reid (svreid@fnal.gov), Farhan Ahmad (fahmed@fnal.gov) +and Brandon White (bjwhite@fnal.gov). Brandon has set this up in mu2e and provides certificates for sbndrawuser. + +* We requested certificates for sbndraw user in the similar way as has been setup for ICARUS and mentioned that ICARUS's +certificates are specified as x509-client-key/certificate and are put in the /opt area +* For SBND, we requested to use the same service certificate for the Production role proxies and the Raw role proxies (similar +* to ICARUS) +* + + From 29dc1e6c464eae947b2c60f89ff70b9bf89b0970 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 8 Nov 2022 22:31:21 -0600 Subject: [PATCH 0358/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index e97bd6528..c74720868 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -70,6 +70,14 @@ cd mrb newDev -q $my_sbndaq_quals -v $my_sbndaq_version source localProducts_*/setup ``` +*Important:* If using a shared user account create a working area in the ```${HOME}/DAQ_DevAreas``` directory. +```bash +export your_working_area=${HOME}/DAQ_DevAreas/$(date +"DAQ_%d%b%Y")_${USER} +mkdir -p ${your_working_area} +cd ${your_working_area} +mrb newDev -q $my_sbndaq_quals -v $my_sbndaq_version +source localProducts_*/setup +```` 3. Pull down the necessary repositories using mrb like so: ```bash From b1860c0ed4a2a564df8a3fd4186f5c171b89c137 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 8 Nov 2022 22:57:37 -0600 Subject: [PATCH 0359/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index c74720868..40fc5213c 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -70,7 +70,7 @@ cd mrb newDev -q $my_sbndaq_quals -v $my_sbndaq_version source localProducts_*/setup ``` -*Important:* If using a shared user account create a working area in the ```${HOME}/DAQ_DevAreas``` directory. +*Important:* If using a shared user account, create a working area in the ```${HOME}/DAQ_DevAreas``` directory. ```bash export your_working_area=${HOME}/DAQ_DevAreas/$(date +"DAQ_%d%b%Y")_${USER} mkdir -p ${your_working_area} @@ -156,6 +156,11 @@ mrb i -j8 #mrb uc && mrbsetenv && mrb i -j8 mrbslp ``` +*Note:* If using a shared user account, create a symbolic link to ${MRB_TOP}/srcs/sbndaq//DAQInterface in the ${MRB_TOP} directory. +```bash +export cluster_name=sbn-fd #use sbn-fd for Icarus, sbn-nd for SBND, or dab for DO/DAB +ln -s ${MRB_TOP}/srcs/sbndaq/${cluster_name}/DAQInterface ${MRB_TOP}/ +``` ### How to update your development area when a new release is available From f04c9cee7e12313ee4f6d1084228f5f1f4536646 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 8 Nov 2022 23:02:02 -0600 Subject: [PATCH 0360/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 40fc5213c..8a1b40db9 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -156,7 +156,7 @@ mrb i -j8 #mrb uc && mrbsetenv && mrb i -j8 mrbslp ``` -*Note:* If using a shared user account, create a symbolic link to ${MRB_TOP}/srcs/sbndaq//DAQInterface in the ${MRB_TOP} directory. +*Note:* If using a shared user account, create a symbolic link to ```${MRB_TOP}/srcs/sbndaq//DAQInterface``` in the ```${MRB_TOP}``` directory. ```bash export cluster_name=sbn-fd #use sbn-fd for Icarus, sbn-nd for SBND, or dab for DO/DAB ln -s ${MRB_TOP}/srcs/sbndaq/${cluster_name}/DAQInterface ${MRB_TOP}/ From 0e3b71c1492421cd51778d409fa821a717fa00ef Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 8 Nov 2022 23:11:07 -0600 Subject: [PATCH 0361/1437] Update ConfigDB.md --- sbn_online_wiki/ConfigDB.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ConfigDB.md b/sbn_online_wiki/ConfigDB.md index d912e8bab..ff84cf19b 100644 --- a/sbn_online_wiki/ConfigDB.md +++ b/sbn_online_wiki/ConfigDB.md @@ -24,7 +24,7 @@ As a basic description, here's a step-by-step guide for making a new configurati To see the full list of configurations, you can do -`conftool.py getListOfAvailableRunConfigurations` +`conftool.py getListOfAvailableRunConfigurations | head -50` Then, find one that you want to use as a base (generally recent working ones). Note you don't need to list the version number at the end if you want the default, which is the most recent/latest version. Then, issue the command: From 43353ed4830f63b70bbc1bc92fcc8cd445378780 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 8 Nov 2022 23:20:41 -0600 Subject: [PATCH 0362/1437] Update ConfigDB.md --- sbn_online_wiki/ConfigDB.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/ConfigDB.md b/sbn_online_wiki/ConfigDB.md index ff84cf19b..4974b541b 100644 --- a/sbn_online_wiki/ConfigDB.md +++ b/sbn_online_wiki/ConfigDB.md @@ -24,7 +24,11 @@ As a basic description, here's a step-by-step guide for making a new configurati To see the full list of configurations, you can do -`conftool.py getListOfAvailableRunConfigurations | head -50` +`conftool.py getListOfAvailableRunConfigurations`, + +or to see the list of active configurations, you can do + +`conftool.py getListOfAvailableRunConfigurationsSubtractMasked $ARTDAQ_DATABASE_CONFDIR/inactive.fcl`. Then, find one that you want to use as a base (generally recent working ones). Note you don't need to list the version number at the end if you want the default, which is the most recent/latest version. Then, issue the command: From 4d164d63b43824312f1647406221b5e5b1c71098 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 8 Nov 2022 23:54:47 -0600 Subject: [PATCH 0363/1437] Update ConfigDB.md --- sbn_online_wiki/ConfigDB.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sbn_online_wiki/ConfigDB.md b/sbn_online_wiki/ConfigDB.md index 4974b541b..cecf257b8 100644 --- a/sbn_online_wiki/ConfigDB.md +++ b/sbn_online_wiki/ConfigDB.md @@ -69,3 +69,11 @@ to make a configuration active again. To mark all 'older' versions of configurations inactive (generally a good idea), you can issue the command: `markOlderConfigsInactive.py`. + +Note that you can also use `conftool.py updateConfigurationFlags ` for marking configurations as _active_ or _inactive_. +```bash +source ~/DAQ_ProdAreas/DAQ_SHIFTER_CURRENT/DAQInterface/setup_daqinterface.sh +configdb_make_work_dir +echo "flag_inactive:true" > flags.fcl #or echo "flag_inactive:false" > flags.fcl +conftool.py updateConfigurationFlags +``` From 569c5e3e9add2050f604f1dfe0fd23c799170912 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:15:02 -0600 Subject: [PATCH 0364/1437] Create DAQworkshops.md --- sbn_online_wiki/DAQworkshops.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 sbn_online_wiki/DAQworkshops.md diff --git a/sbn_online_wiki/DAQworkshops.md b/sbn_online_wiki/DAQworkshops.md new file mode 100644 index 000000000..9a249a9a5 --- /dev/null +++ b/sbn_online_wiki/DAQworkshops.md @@ -0,0 +1,10 @@ +List of the past ICARUS DAQ workshop +--- +(AA: I tried to list here all the DAQ tutorials I could recall. Please expand this list if I omitted something, or if new materials are being added) + +* 2022, Nov 9–10, [ICARUS DAQ workshop](https://indico.fnal.gov/event/56801/) – an overview of all subsystems +* 2022, Aug 15, [SBN DAQ Feature Branches, Pull Requests, and the CRT## Setup](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=27504) by E.Yandel +* 2021, Nov 12, [ICARUS DAQ Introduction](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=23979) by J.Zettlemoyer on ICARUS Collaboration Meeting +* 2020, Nov 3, 5 [ICARUS DAQ Expert Training, Data Flow](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=19901), [DAQInterface/control](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=19949), [DAQInterface/control recording](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=19970) by W.Ketchum +* 2019, Aug 15, [SBN-FD CRT DAQ Tutorial](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=18134) by T.Boone +* 2019, Mar 26, [CRT readout tutorial](https://sbn-docdb.fnal.gov/cgi-bin/sso/DisplayMeeting?conferenceid=5010) From 911fbfef37fec36cf743d6770f1f5d9f6cc727a3 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:23:50 -0600 Subject: [PATCH 0365/1437] Create configurationDB.md --- sbn_online_wiki/configurationDB.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sbn_online_wiki/configurationDB.md diff --git a/sbn_online_wiki/configurationDB.md b/sbn_online_wiki/configurationDB.md new file mode 100644 index 000000000..a9e99870b --- /dev/null +++ b/sbn_online_wiki/configurationDB.md @@ -0,0 +1,6 @@ +Configuration DB Instructions +---------------------------------------------- +* [See here for instructions on working with the configuration database](ConfigDB) +* [See here for instructions on migrating configurations in the configurations database](MigrateConfigs) +* [See here for instructions for restarting MongoDB](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/Mongodb_Instructions) +* [See here for instructions for restoring MongoDB](https://github.com/SBNSoftware/artdaqdatabase) From 68a2bdbb72108b115ff2c0c0fc61cd5e69dc68d5 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:24:49 -0600 Subject: [PATCH 0366/1437] Update configurationDB.md --- sbn_online_wiki/configurationDB.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/configurationDB.md b/sbn_online_wiki/configurationDB.md index a9e99870b..bca13cfec 100644 --- a/sbn_online_wiki/configurationDB.md +++ b/sbn_online_wiki/configurationDB.md @@ -1,5 +1,5 @@ -Configuration DB Instructions ----------------------------------------------- +# Configuration DB Instructions + * [See here for instructions on working with the configuration database](ConfigDB) * [See here for instructions on migrating configurations in the configurations database](MigrateConfigs) * [See here for instructions for restarting MongoDB](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/Mongodb_Instructions) From 1e47a53796480d599fc42704a33c0e833ec65d2c Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:44:46 -0600 Subject: [PATCH 0367/1437] Update configurationDB.md --- sbn_online_wiki/configurationDB.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/configurationDB.md b/sbn_online_wiki/configurationDB.md index bca13cfec..c94b32966 100644 --- a/sbn_online_wiki/configurationDB.md +++ b/sbn_online_wiki/configurationDB.md @@ -1,6 +1,7 @@ + # Configuration DB Instructions -* [See here for instructions on working with the configuration database](ConfigDB) -* [See here for instructions on migrating configurations in the configurations database](MigrateConfigs) +* [See here for instructions on working with the configuration database](ConfigDB.md) +* [See here for instructions on migrating configurations in the configurations database](MigrateConfigs.md) * [See here for instructions for restarting MongoDB](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/Mongodb_Instructions) -* [See here for instructions for restoring MongoDB](https://github.com/SBNSoftware/artdaqdatabase) +* [See here for instructions for restoring MongoDB](https://github.com/SBNSoftware/artdaqdatabase.md) From b43b422fb40beca986fc65b1e53643ef2cb7bd81 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:44:59 -0600 Subject: [PATCH 0368/1437] Update configurationDB.md --- sbn_online_wiki/configurationDB.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/configurationDB.md b/sbn_online_wiki/configurationDB.md index c94b32966..4395d589c 100644 --- a/sbn_online_wiki/configurationDB.md +++ b/sbn_online_wiki/configurationDB.md @@ -4,4 +4,4 @@ * [See here for instructions on working with the configuration database](ConfigDB.md) * [See here for instructions on migrating configurations in the configurations database](MigrateConfigs.md) * [See here for instructions for restarting MongoDB](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/Mongodb_Instructions) -* [See here for instructions for restoring MongoDB](https://github.com/SBNSoftware/artdaqdatabase.md) +* [See here for instructions for restoring MongoDB](https://github.com/SBNSoftware/artdaqdatabase) From 82593860cebb4f4b29f0f0e7994b0889e97a2b6e Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:46:03 -0600 Subject: [PATCH 0369/1437] Create grafana.md --- sbn_online_wiki/grafana.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sbn_online_wiki/grafana.md diff --git a/sbn_online_wiki/grafana.md b/sbn_online_wiki/grafana.md new file mode 100644 index 000000000..43da7d49a --- /dev/null +++ b/sbn_online_wiki/grafana.md @@ -0,0 +1,6 @@ +# Grafana monitoring Instructions + +* [Restart Grafana](RestartGrafana.md) +* [Configure runrecords_monitor.sh](RunRecordsMonitor.md) +* [Configure disk_monitor.shh](DiskMonitor.md) +* [Add a monitoring panel in Grafana](MonitorPanel.md) From 450c8d2c9ed8289cd8c3102a4f3575b0b1f2fcc0 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:47:46 -0600 Subject: [PATCH 0370/1437] Create run_history.md --- sbn_online_wiki/run_history.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sbn_online_wiki/run_history.md diff --git a/sbn_online_wiki/run_history.md b/sbn_online_wiki/run_history.md new file mode 100644 index 000000000..ca36795f2 --- /dev/null +++ b/sbn_online_wiki/run_history.md @@ -0,0 +1,6 @@ +# Copy ```run history``` from /daq/run_records into ArtdaqDB, and into UconDB + +* [Import run history from /daq/run_records/ into ArtdaqDB](ImportRunHistory2ArtdaqDB) + * [Configure importRunHistory2ArtdaqDB-cron.sh](ImportRunHistory2ArtdaqDB_cron) +* [Copy run history from ArtdaqDB into UconDB](CopyRunHistory2UconDB) + * [Configure copyRunHistory2UconDB-cron.sh](CopyRunHistory2UconDB_cron) From 0be1aa5d01b8aa83e4314530eb78666fd6089db3 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 9 Nov 2022 16:49:26 -0600 Subject: [PATCH 0371/1437] Update sbndaq_Wiki.md reorganizing the main page --- sbn_online_wiki/sbndaq_Wiki.md | 68 ++++++++++++++++------------------ 1 file changed, 31 insertions(+), 37 deletions(-) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 48d713e2a..da750398f 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -17,60 +17,41 @@ Developing in sbndaq * [Development Model](DevModel) -Configuration DB Instructions ----------------------------------------------- -* [See here for instructions on working with the configuration database](ConfigDB) -* [See here for instructions on migrating configurations in the configurations database](MigrateConfigs) -* [See here for instructions for restarting MongoDB](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/Mongodb_Instructions) -* [See here for instructions for restoring MongoDB](https://github.com/SBNSoftware/artdaqdatabase) - -Copy ```run history``` from /daq/run_records into ArtdaqDB, and into UconDB +Release Instructions ---------------------------------------------- -* [Import run history from /daq/run_records/ into ArtdaqDB](ImportRunHistory2ArtdaqDB) - * [Configure importRunHistory2ArtdaqDB-cron.sh](ImportRunHistory2ArtdaqDB_cron) -* [Copy run history from ArtdaqDB into UconDB](CopyRunHistory2UconDB) - * [Configure copyRunHistory2UconDB-cron.sh](CopyRunHistory2UconDB_cron) +[See here for release instructions for online-related software](ReleaseInstructions) -Grafana monitoring Instructions ----------------------------------------------- -* [Restart Grafana](RestartGrafana) -* [Configure runrecords_monitor.sh](RunRecordsMonitor) -* [Configure disk_monitor.shh](DiskMonitor) -* [Add a monitoring panel in Grafana](MonitorPanel) -Release Instructions +sbndaq components and services ---------------------------------------------- -[See here for release instructions for online-related software](ReleaseInstructions) +* [List of boardreaders](Boardreaders.md) +* Configuring the [Multi Function Timing Unit (MFTU)](ACnet/MFTU.md) Beam Timing Interface +* [ICARUS File Transfer Service (FTS)](ICARUS_FTS.md) +* [Grafana monitoring Instructions](grafana.md) +Database instructions +--- +* [Configuration DB Instructions](configurationDB.md) +* [run history database instructions (ArtdaqDB, UconDB)](run_history.md) -Old wiki ----------------------------------------------- -Please -see the old wiki for a lot of historical detail. -[Ported Old Redmine Wiki](../sbndaq_oldwiki/Wiki) +Workshops +--------- +* [DAQ workshops](DAQworkshops.md) -[Old redmine wiki](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki). +Troubleshooting +---------------------------------------------- -(we are slowly going to work on updating/adding more info here...) -# Useful Links +Useful Links +--- * artdaq: [Artdaq Demo Wiki](https://cdcvs.fnal.gov/redmine/projects/artdaq-demo/wiki) * git info: [Github guides](https://guides.github.com/) * [Older instructions on Github Migration](GithubMigration.md) * [Run CAENdump](CAENdump_setup.md) -sbndaq detector components ----------------------------------------------- -* [List of boardreaders](Boardreaders.md) -* Configuring the [Multi Function Timing Unit (MFTU)](ACnet/MFTU.md) Beam Timing Interface -* [ICARUS File Transfer Service (FTS)](ICARUS_FTS.md) - -Troubleshooting ----------------------------------------------- - Contributing to this wiki @@ -81,3 +62,16 @@ The content of this wiki is tracked in a GitHub repository [SBNSoftware/SBNSoftw under the [`sbndaq_wiki`](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/sbndaq_wiki) subdirectory. Some details using this particular theme can be found [here](https://github.com/chrisrhymes/bulma-clean-theme). + + + +Old wiki +---------------------------------------------- +Please +see the old redmine wiki for a lot of historical detail. + +[Ported Old Redmine Wiki](../sbndaq_oldwiki/Wiki) + +[Old redmine wiki](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki). + +(we are slowly going to work on updating/adding more info here...) From fb51bf9c72027a5fd6c0ae46c93b600c0f89ebd8 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 10 Nov 2022 16:03:02 +0000 Subject: [PATCH 0372/1437] Create rm_sbndata.rm --- .../ReleaseManagement/rm_sbndata.rm | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/rm_sbndata.rm diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_sbndata.rm b/AnalysisInfrastructure/ReleaseManagement/rm_sbndata.rm new file mode 100644 index 000000000..1e290ea6c --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/rm_sbndata.rm @@ -0,0 +1,13 @@ +--- +layout: page +title: Release Management sbndata Instructions +toc: true +--- + +## sbndata general info + +This package is designed to contain external data needed for SBN. +It is versioned with tags and released as ups product available from /cvmfs/sbn.opensciencegrid.org/products/sbn +It is not + +## Release management From 53c8d7aff2db48d2683484e47a7f0c2d6a8b6e9f Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 10 Nov 2022 10:09:41 -0600 Subject: [PATCH 0373/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 8a1b40db9..92d61ef15 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -72,7 +72,8 @@ source localProducts_*/setup ``` *Important:* If using a shared user account, create a working area in the ```${HOME}/DAQ_DevAreas``` directory. ```bash -export your_working_area=${HOME}/DAQ_DevAreas/$(date +"DAQ_%d%b%Y")_${USER} +export your_initials=FNL +export your_working_area=${HOME}/DAQ_DevAreas/$(date +"DAQ_%d%b%Y")_${your_initials} mkdir -p ${your_working_area} cd ${your_working_area} mrb newDev -q $my_sbndaq_quals -v $my_sbndaq_version From 15fbe440be8b992edb50e332bf6e225f97e3f599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 11 Nov 2022 15:21:27 +0000 Subject: [PATCH 0374/1437] Create ReleaseNotes09620002.md --- .../Releases/ReleaseNotes09620002.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09620002.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09620002.md b/sbndcode_wiki/Releases/ReleaseNotes09620002.md new file mode 100644 index 000000000..8971809d0 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09620002.md @@ -0,0 +1,52 @@ +--- +layout: page +title: ReleaseNotes09620002 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.62.00.02 | 11 nov 2022 | [ReleaseNotes](ReleaseNotes09620002.html) | +| --- | --- | --- | + + + +sbndcode v09_62_00_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_62_00_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_62_00_02/sbndcode-v09_62_00_02.html) + +Purpose +--------------------------------------------------- +Test release for cetmodules migration + +New features +--------------------------------------------------- +Includes sbndcode PR 308: cetmodules migration + + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2022-11-10 Patrick Gartung : trailing whitespace cleanup +* 2022-11-09 Patrick Gartung : Second pass at cetmodules migration. +* 2022-11-09 Patrick Gartung : First pass at CMakeList.txt cetmodules migration: use targets, follow MIGRATE comment recommendations. +* 2022-11-09 Patrick Gartung : cetmodules migration of ups directory +* 2022-11-09 Patrick Gartung : Merge branch 'SBNSoftware:develop' into from-v09_60_01 +* 2022-11-03 Fran Nicolas : Merge tag 'v09_62_00' into develop +* 2022-10-17 Patrick Gartung : Add find_package for daq packages so target will get defined. + +sbndutil +--------------------------------------------------- + +* 2022-11-03 Fran Nicolas : Merge tag 'v09_62_00' into develop From 70f579ab9ac1d88fdff7ffe7694de3aa9895d8a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 11 Nov 2022 15:23:25 +0000 Subject: [PATCH 0375/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 7074f3c8b..19bf522c9 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_62_00_01` | Test release for cetmodules | [Release Notes](ReleaseNotes09620002.html) |`v09_62_00`. | Weekly release | [Release Notes](ReleaseNotes096200.html) |`v09_61_00_01` | Weekly release | [Release Notes](ReleaseNotes09610001.html) |`v09_60_01` | Weekly release | [Release Notes](ReleaseNotes096001.html) From dfdf8f85e972306dba7fdaa756bfe3667fd35861 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 11 Nov 2022 22:40:39 +0000 Subject: [PATCH 0376/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 12e32b44a..c8dc0ad97 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +`SBN2022B` | 'sbncode' autumn production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B) `v09_62_00_02` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_02) `v09_62_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01) |`v09_62_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00) From 16cb2d50241be9f773223016b2dad7efd281f93a Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 11 Nov 2022 23:00:16 +0000 Subject: [PATCH 0377/1437] Create sbncode_SBN2022B.md --- .../Releases/sbncode_SBN2022B.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md new file mode 100644 index 000000000..e94a1a80a --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md @@ -0,0 +1,53 @@ +--- +layout: page +title: sbncode_SBN2022B +toc: true +--- + +sbncode_SBN2022B Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +11 November 2022 + +Purpose +--------------------------------------------------- +* Autumn production release + +New features +--------------------------------------------------- +A new production release SBN2022B of sbncode (v09_63_00) has been cut and distributed + +* sbncode (v09_63_00 in ups / SBN2022B in GitHub): + Using: + * larsoft v09_63_00 + * sbnobj v09_15_00 + * lardataobj v09_13_01 + * sbnanaobj v09_20_00 + + Includes: + * SBNSoftware/sbncode Update to cetmodules #304 + * SBNSoftware/sbnobj Update to cetmodules #70 + * SBNSoftware/sbnanaobj Update to cetmodules #82 + * DeepLearnPhysics/Supera Migrate to cetmodules and use CMake targets. #11 + * sbncode/Supera': checked out 'b164e1a446297ca3329cef853a858d089a21483e + * SBNSoftware/sbncode Accommodate breaking changes in geometry #309 + * SBNSoftware/sbncode Add RawDigits to be covered by fSilenceMissingDataProducts parameter in TrackSkimmer.#315 + * SBNSoftware/sbncode Fix Calo Point Time and add it PFP T0 #308 + * SBNSoftware/sbnanaobj Add in t0 variable to PFP #84 + + +Extra info +--------------------------------------------------- + This is a production release using v09_63_00 tag in ups and SBN2022B in GitHub. + + In this a migration to use cetmodules has been introduced. + More info: https://indico.fnal.gov/event/53302 + + Note also the braking change introduce in LArSoft: + https://github.com/LArSoft/larsoft/releases/tag/v09_63_00 From 49a3ecdcc7544d66c4c632e4048de0253307b91f Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 11 Nov 2022 23:11:44 +0000 Subject: [PATCH 0378/1437] Update sbncode_SBN2022B.md --- .../ReleaseManagement/Releases/sbncode_SBN2022B.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md index e94a1a80a..298029e2a 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md @@ -29,6 +29,7 @@ A new production release SBN2022B of sbncode (v09_63_00) has been cut and distr * sbnobj v09_15_00 * lardataobj v09_13_01 * sbnanaobj v09_20_00 + * cetmodules v3_20_00 Includes: * SBNSoftware/sbncode Update to cetmodules #304 @@ -46,7 +47,7 @@ Extra info --------------------------------------------------- This is a production release using v09_63_00 tag in ups and SBN2022B in GitHub. - In this a migration to use cetmodules has been introduced. + In this release a migration to use cetmodules has been introduced. More info: https://indico.fnal.gov/event/53302 Note also the braking change introduce in LArSoft: From 3ff2c1918e40be68ab14affe34f9fcc7623d3db5 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 11 Nov 2022 23:12:45 +0000 Subject: [PATCH 0379/1437] Update sbncode_SBN2022B.md --- .../ReleaseManagement/Releases/sbncode_SBN2022B.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md index 298029e2a..5a85125b8 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B.md @@ -24,6 +24,7 @@ New features A new production release SBN2022B of sbncode (v09_63_00) has been cut and distributed * sbncode (v09_63_00 in ups / SBN2022B in GitHub): + Using: * larsoft v09_63_00 * sbnobj v09_15_00 From d4a4eae10d92edb550faf25c58456ce713807ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 14 Nov 2022 13:37:34 +0000 Subject: [PATCH 0380/1437] Create ReleaseNotes096300.md --- sbndcode_wiki/Releases/ReleaseNotes096300.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096300.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096300.md b/sbndcode_wiki/Releases/ReleaseNotes096300.md new file mode 100644 index 000000000..39cdd0ded --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096300.md @@ -0,0 +1 @@ +- From 51703f5e56f43215278cf25f5048d390917a3c43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 14 Nov 2022 13:53:05 +0000 Subject: [PATCH 0381/1437] Update ReleaseNotes096300.md --- sbndcode_wiki/Releases/ReleaseNotes096300.md | 67 +++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/ReleaseNotes096300.md b/sbndcode_wiki/Releases/ReleaseNotes096300.md index 39cdd0ded..80aa9f7e2 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes096300.md +++ b/sbndcode_wiki/Releases/ReleaseNotes096300.md @@ -1 +1,66 @@ -- +--- +layout: page +title: ReleaseNotes096300 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.63.00 | 14 nov 2022 | [ReleaseNotes](ReleaseNotes096300.html) | +| --- | --- | --- | + + + +sbndcode v09_63_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_63_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_63_00/sbndcode-v09_63_00.html) + +Purpose +--------------------------------------------------- +Autumn (SBN2022B) production release + +New features +--------------------------------------------------- +* sbndcode PR307 + * Accommodate breaking changes to geometry + * Pursuant to LArSoft/larcorealg#33 +* sbndcode PR308 + * cetmodules migration + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +- larsoft v09_63_00 +- sbncode v09_63_00 + +Additional info +--------------------------------------------------- +- Breaking changes + - Includes migration to use cetmodules (https://indico.fnal.gov/event/53302) + - Includes breaking changes in the use of the geometry sservice (https://indico.fnal.gov/event/56265/) + +Change List +========================================== + +sbndcode +--------------------------------------------------- + +* 2022-11-14 Francisco Javier Nicolás-Arnaldos : Merge pull request #307 from knoepfel/geom-work +* 2022-11-11 Miquel Nebot : Merge pull request #308 from gartung/from-v09_60_01 +* 2022-11-10 Patrick Gartung : trailing whitespace cleanup +* 2022-11-09 Patrick Gartung : Second pass at cetmodules migration. +* 2022-11-09 Patrick Gartung : First pass at CMakeList.txt cetmodules migration: use targets, follow MIGRATE comment recommendations. +* 2022-10-06 Kyle Knoepfel : Accommodate breaking changes. +* 2022-11-09 Patrick Gartung : cetmodules migration of ups directory +* 2022-11-09 Patrick Gartung : Merge branch 'SBNSoftware:develop' into from-v09_60_01 +* 2022-11-03 Fran Nicolas : Merge tag 'v09_62_00' into develop +* 2022-10-17 Patrick Gartung : Add find_package for daq packages so target will get defined. + +sbndutil +--------------------------------------------------- + +* 2022-11-03 Fran Nicolas : Merge tag 'v09_62_00' into develop From 03363cb0eb6ad6e0ace34d7ffcacf84f7c968a3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 14 Nov 2022 13:54:13 +0000 Subject: [PATCH 0382/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 19bf522c9..cd2b0dfa6 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_63_00`. | Production release SBN-2022B | [Release Notes](ReleaseNotes096300.html) |`v09_62_00_01` | Test release for cetmodules | [Release Notes](ReleaseNotes09620002.html) |`v09_62_00`. | Weekly release | [Release Notes](ReleaseNotes096200.html) |`v09_61_00_01` | Weekly release | [Release Notes](ReleaseNotes09610001.html) From 83fe58c4e19bb6363be67bd4469f66daa715169d Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 15 Nov 2022 10:43:56 -0600 Subject: [PATCH 0383/1437] Update sbndaq_Wiki.md --- sbn_online_wiki/sbndaq_Wiki.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index da750398f..1fca8564c 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -26,6 +26,7 @@ Release Instructions sbndaq components and services ---------------------------------------------- * [List of boardreaders](Boardreaders.md) +* [Status of ongoing development and debugging](development/development.md) * Configuring the [Multi Function Timing Unit (MFTU)](ACnet/MFTU.md) Beam Timing Interface * [ICARUS File Transfer Service (FTS)](ICARUS_FTS.md) * [Grafana monitoring Instructions](grafana.md) From d878a590141c422802580545875a052acc066c80 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 15 Nov 2022 10:48:26 -0600 Subject: [PATCH 0384/1437] Create development.md --- sbn_online_wiki/development/development.md | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 sbn_online_wiki/development/development.md diff --git a/sbn_online_wiki/development/development.md b/sbn_online_wiki/development/development.md new file mode 100644 index 000000000..a44ea9325 --- /dev/null +++ b/sbn_online_wiki/development/development.md @@ -0,0 +1,26 @@ +--- +layout: page +title: Status of ongoing development and debugging +description: List of issues and details of work +hero_height: is-small +toc: true +toc_title: +--- + +## TPC trigger skew + - debugging started + - possibly we need more debug messages + - possibly the race condition does not occur in the debug mode +## Lost boardreaders on TPC corner crates due to segfaults + - possibly other boardreaders too, but less often – not sure if it's the same issue! +## Shared memory problems resulting in OM interruptions with run crashes + - less issues recently + - what is the reason for run crashing? There should be no interference between OM and the main DAQ + - Dispatcher stopping causes the run to stop. Is dispatcher in critical_process_list? Is it wanted? Maybe we can settle of just having an error message and shifter restarting the shifter manually → more uptime +## Exceptions related to checksum + - Filippo will look for details + - What version of sbndaq, which development area was used? + - What happens? Is data lost or corrupted? Debugging needed +## Trigger: + - issue with starting trigger improved by changing version of trigger vi + - Unclear reason why run 9093 has some files with no stream in their name. More information needed. Is there anything different about Event Builders 21 and 26? The boot file name is saved in run_records. From 39477bfa1a6514fd48648e40247e178c3065d31f Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 15 Nov 2022 12:22:45 -0600 Subject: [PATCH 0385/1437] Update development.md --- sbn_online_wiki/development/development.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sbn_online_wiki/development/development.md b/sbn_online_wiki/development/development.md index a44ea9325..314b39cec 100644 --- a/sbn_online_wiki/development/development.md +++ b/sbn_online_wiki/development/development.md @@ -11,16 +11,38 @@ toc_title: - debugging started - possibly we need more debug messages - possibly the race condition does not occur in the debug mode + + +### Debugging session on Nov 15 +Actions: + - re-enabled debug trace messages + - added trace messages to monitor the occupancy of the Circular Buffer + - added relevant grafana metrics to `Artdaq_TPC_fragments` page + +Observations: + - the buffer never does seem to be linearized + + ## Lost boardreaders on TPC corner crates due to segfaults + - possibly other boardreaders too, but less often – not sure if it's the same issue! + + ## Shared memory problems resulting in OM interruptions with run crashes - less issues recently - what is the reason for run crashing? There should be no interference between OM and the main DAQ - Dispatcher stopping causes the run to stop. Is dispatcher in critical_process_list? Is it wanted? Maybe we can settle of just having an error message and shifter restarting the shifter manually → more uptime + + ## Exceptions related to checksum - Filippo will look for details - What version of sbndaq, which development area was used? - What happens? Is data lost or corrupted? Debugging needed + + ## Trigger: - issue with starting trigger improved by changing version of trigger vi - Unclear reason why run 9093 has some files with no stream in their name. More information needed. Is there anything different about Event Builders 21 and 26? The boot file name is saved in run_records. + +## Very long time to start and to stop the DAQ + - A potential reason might be that the boardreaders start to produce fragments before the run starts, and don't necessarily stop to produce fragments when the run stops. From 94cb6c89f08c90292737c3061d101f4f8a04e930 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 15 Nov 2022 12:33:11 -0600 Subject: [PATCH 0386/1437] Update development.md --- sbn_online_wiki/development/development.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/development/development.md b/sbn_online_wiki/development/development.md index 314b39cec..a6fa4fc35 100644 --- a/sbn_online_wiki/development/development.md +++ b/sbn_online_wiki/development/development.md @@ -13,7 +13,7 @@ toc_title: - possibly the race condition does not occur in the debug mode -### Debugging session on Nov 15 +### Debugging session on Nov 15, 2022 Actions: - re-enabled debug trace messages - added trace messages to monitor the occupancy of the Circular Buffer From ad17bb76a880c69e37936d08a28fc6ba71f158f6 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 17 Nov 2022 16:04:24 +0100 Subject: [PATCH 0387/1437] Update development.md --- sbn_online_wiki/development/development.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/development/development.md b/sbn_online_wiki/development/development.md index a6fa4fc35..453fac9b2 100644 --- a/sbn_online_wiki/development/development.md +++ b/sbn_online_wiki/development/development.md @@ -42,7 +42,7 @@ Observations: ## Trigger: - issue with starting trigger improved by changing version of trigger vi - - Unclear reason why run 9093 has some files with no stream in their name. More information needed. Is there anything different about Event Builders 21 and 26? The boot file name is saved in run_records. + - Unclear reason why run 9093 has some files with no stream in their name. More information needed. Is there anything different about Event Builders 21 and 26? The boot file name is saved in run_records. --> The reason could be that in configuration "Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_00002" the line "physics.my_output_modules: [ testOutput, rootNetOutput ]" in EventBuilder21.fcl and EventBuilder26.fcl is not commented ## Very long time to start and to stop the DAQ - A potential reason might be that the boardreaders start to produce fragments before the run starts, and don't necessarily stop to produce fragments when the run stops. From ba720070cb0685e10c4d2af5e42b50d5af8dfd37 Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Thu, 17 Nov 2022 09:51:53 -0600 Subject: [PATCH 0388/1437] Upload plots --- .../files/crt_sharps_run2100_beam_peak.png | Bin 0 -> 74078 bytes .../files/crthit_beam_spot_bt_2017.png | Bin 0 -> 79330 bytes .../crthit_t1_beam_substructure_bt_2017.png | Bin 0 -> 101335 bytes ...hit_t1_beam_substructure_zoomed_bt_2017.png | Bin 0 -> 62188 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 sbndcode_wiki/commissioning/files/crt_sharps_run2100_beam_peak.png create mode 100644 sbndcode_wiki/commissioning/files/crthit_beam_spot_bt_2017.png create mode 100644 sbndcode_wiki/commissioning/files/crthit_t1_beam_substructure_bt_2017.png create mode 100644 sbndcode_wiki/commissioning/files/crthit_t1_beam_substructure_zoomed_bt_2017.png diff --git a/sbndcode_wiki/commissioning/files/crt_sharps_run2100_beam_peak.png b/sbndcode_wiki/commissioning/files/crt_sharps_run2100_beam_peak.png new file mode 100644 index 0000000000000000000000000000000000000000..56a9344229da323f93b961f3afab8baeabbbecf9 GIT binary patch literal 74078 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

b3%(nv}0ZGF8X zylE@fP(eX6W%5g4cqr%y#?mVo$1tf0)<5ZtJXB63$yIvntVJ0c$3fW@glSFH-3?#9s_m;>E$S^KN9H~fO8bmJAp&r!QO_G(jw zv;iPEKv@&+!>lfK_Dm2+x{L6Wmr0}4a~6Y#dtgTz5sT9i7jL; z$1K6l_zVw>Fk0sI>uHuRKPbBmx;O}E{){N*Oj3_ZbUF!A3R;@`WoW;FKvk8NRu^C* z9%l_bh>T>f(S&@36{8M1OC|?DJbJ0j7O{Cd`Q#j_qI&)Jt<}q)@fTsR0JN5Xh{$^X zuU%clr2#5~!?F`P0R8~j0t`iM26foRbFXmN0eC$C6ZXz-K)VTZ-5c=X!x3oN!J2?& z2Xolf({pd<8E#M|sd?Vb<{eKKIxwdOj3AW=?#Ce2^OXhV%?5y1hgv)Ya4s3U6<}xq>$)h!nwaO|9wl1Y2d4YaObiV_~+u z8&;oP7Z!o%R;os3U{zQMpn(L6IAU zZWtwoj!qYjl7sO3>(|Dl!(5a)6^G4uiPL7UR50cWD(hH^X<(W4e_WWfPrKOgGrY$=S=sYe1Or3x;lvYsR z&`^8JYx2(Oa2%b*FS9^E5asrhF|R4T*Kmv+$Rs)=YKtz5u!@&A5?A=b@@cy6@ZX1*0vgPQ6QOvPlQ^UaGupu5;mBZJ z;Hw-5pc0dv!6hZ`3JMC~t3-yWx1DtduJd-uY_}*9ATiZ`F^k><9^^=XU;jQ7c?V=F zCQv&&JDILkx4=P8bh%j7 zoJG=~A*a75e$sc%Qu1BM%0TU7kkgCUE=_;77!oGO#3%?B-~{NY&wz-5ZjJ83!PIam53Qo!UrF+V=`c4dDmo^Ka-&#~7K3%GjI1JjTG^}N0JPYvIUs)U3&cvhyEE`~fgS;?e z8EVen|HF;C%l^Ew@is>Rg*6b52#u|RB!KL*2+ok>Z+{9G;RRH6m?M1(HR}C1v@z2i z3v(UnnX0**IQ10Ajx?IFBNp<|V3k*Hn**KaL=1Jt+( zJc+TGa)eb407j{&tPBiia2|b43WQ7h^8bd24f%2v9UYVGXKw1G_*c}*EO*A9Vr3I0 zqFmD70PusTUUhbRG&IQce~9^^2=Uj8$>A>2fv+*~%XM&gSn&)qyE|}Z5s)J*;&%h1 zXKUAP9G$5(Mnpb>lF&Q@S3G#f;S$a(vM{8>I!E6)N;SCQl*a$zr6P{b+>j&(l(@LB zCsK@9=i&eN?iQAkjj{3F7haeo6L4;;sIUbCCcYFwMYO>bCa@td8Wxx3qqfaDqxTkO z_m3AK0?!K5(enri4FH6?AB*n=e5d@z>eZ{A930lJCME&&ugQ-o6rv0f47A>cBU1X$ zgrX--2?$DJjVHu`xdpX~`xEK#CYWD9Hb#N>4HayIL66+pO zpPASiyxSW|#*edc_*DgDJ_%KolQUJOAFd=UCGB=<@Ib690u_}|7(7W3VUUwnW=^N!UwG`NkHZNX9qQc1?hX~NTmx4_h~|NQP_$eLGzgldIC zWO!?QWGF4>!XDng|K)EBa`+%zeV49&1dE>ARv3|Yp4;O`4OV6(k_1f66=h@`y0-E# z(l3IDwNV9nu5$e>SQMtL-@9t~7Wpn7=Wh*i#(G1=QCvlAdk?{32ttU-OdUNv72f`vbrBHiU^Ico}eh~Ms;khQEU1TgUJZc82iMWj+U;j69P7-+~mZ? zwFFD@^3J1TL`78Oo`8PK;;dH!#(Gt}$V>>=qm*vMMe(S8y<0IDi@4)_55vcs^&QeT z4%q7TGn5V9U$&=oO8D*5sA8j23GT_1?`uJ-pN6|vdlE?NhM8!378E9X!Irqbz%=LN zx8_cma4!%~3QWHc)d~bM7-06f*#ec%3NBZ;ezbj01a4J7Th8@1U{}M73bmnOR#ZSn zfPr4904dw2JlH#a$GQdW3Kb2=_u^pXaR$6hD5kF-^5 z*0jh!8HQ|!$h*wn09iSOeNRjeEyqz_>84Yk*u6uWrJt;+zq~eU

Rn{gs#H2)GQ zbTX=5Fm9gzV0NpF-UOv2Fj7n4(*5%#Fcyfn&}iQoP#)4}LRJQ48K%jk&4)~HL&y-s z2Bh|(`@(!;6Y2<#5-SV>I2V|oIrAt;cUfOCE3^~L@9{JBjxGy!DN$>t=MwJi54cu7 zLGjo|?onwDD>+rv+#5;2HxCB}!_Bayq%#gOMgW#kU-?_l@j~S**oCve%<%+bZmzi_ z{doL>z|Z0su~;B{8j^4Au1DoY<<`XoP44=GGVZs6H-;u<{Z$Y>Bm%RUuhFw~6;nga z6JHBgrYIv`7_JD`W2;$Q!xm~7H*Rrx)4+Dc=h%C%9U_0Z_dhmZUP1=1QojRZD;7C- z;p+N`9wr#g4J{OoJPHTkK}IzMN_^G)_9Wt{OA6h|*2&I&nc*ix?iijq)QxaLHZ

1QFeU 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
MC 2023A +standard_g4_icarus_sce.fcl
+detsim_2d_icarus.fcl
+stage0_run2_icarus_mc.fcl
+stage1_run2_icarus_MC.fcl
+
From 38f1aaa3e6ef1907229714d2f974cad5f7f2e9ad Mon Sep 17 00:00:00 2001 From: Tracy Usher Date: Thu, 4 May 2023 07:33:37 -0700 Subject: [PATCH 0570/1437] Update workflow_icarus.md Updating the keep up processing workflow for ICARUS --- .../WorkflowManagement/workflow_icarus.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md index 303ecede9..3b797db89 100644 --- a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md +++ b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md @@ -1,11 +1,16 @@ # ICARUS Standard Workflows -
Data keep up processing +
Data keep up processing - ICARUS Run 1 stage0_multiTPC_splitstream_nofilter_icarus.fcl
stage1_multiTPC_nofilter_icarus_gauss.fcl (BNB time window)
stage1_multiTPC_nofilter_icarus_gauss_numi.fcl (NUMI time window)
+
Data keep up processing - ICARUS Run 2 +stage0_run2_icarus.fcl
+stage1_run2_nofilter_icarus.fcl
+
+
MC 2020 g4_enable_spacecharge.fcl
multitpc_detsim_icarus.fcl
From 7b822ba4a9f1a82b5c70343b622ea77b9bb53544 Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Thu, 4 May 2023 13:20:44 -0500 Subject: [PATCH 0571/1437] Update particle_gun_tut.md --- SBNYoung/particle_gun_tut.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/SBNYoung/particle_gun_tut.md b/SBNYoung/particle_gun_tut.md index 23adc8e39..c1f67616a 100644 --- a/SBNYoung/particle_gun_tut.md +++ b/SBNYoung/particle_gun_tut.md @@ -367,15 +367,4 @@ You should now have `MyAnalyzer.root` in your `data` directory. Nice work! Now, ![VSCode2](Images/vscode2.png) ![VSCode3](Images/vscode3.png) -5 - Running MyAnalyzer ------------------------------------------------------------------------------ - - - - - - - - -![Alt text](Images/coords.png) From f7b2fc3e45007b83873cb72144b64cc00da3ffdb Mon Sep 17 00:00:00 2001 From: Bear Carlson <67704640+bear-is-asleep@users.noreply.github.com> Date: Thu, 4 May 2023 15:41:40 -0500 Subject: [PATCH 0572/1437] Update SBNYoungIndex.md --- SBNYoung/SBNYoungIndex.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SBNYoung/SBNYoungIndex.md b/SBNYoung/SBNYoungIndex.md index 6cacd3123..2382d97a0 100644 --- a/SBNYoung/SBNYoungIndex.md +++ b/SBNYoung/SBNYoungIndex.md @@ -37,3 +37,6 @@ Thanks to the authors of the SBND & ICARUS Newbie Guides from which we ported so *Why does everyone speak in code?!* - [Using the Grid](Grid_Intro.md) *How to submit jobs to the FNAL grid computing system* + - [Particle gun and analyzer modules](particle_gun_tut.md) + *Writing a simple fcl to produce particles and how to analyze the output using larsoft files* + From 29bd31a3fdcec483da082bdf4cbea179d27b9ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 4 May 2023 19:25:51 -0500 Subject: [PATCH 0573/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index d7eb63b77..ab04a8121 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_73_00`. | Weekly release. | [Release Notes](ReleaseNotes097300.html) |`v09_72_01`. | Weekly release. | [Release Notes](ReleaseNotes097201.html) |`v09_72_00`. | Weekly release. | [Release Notes](ReleaseNotes097200.html) |`v09_71_00`. | Weekly release. | [Release Notes](ReleaseNotes097100.html) From 61e877e40638bb1b5102ad9208114c00aa222042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 4 May 2023 19:28:33 -0500 Subject: [PATCH 0574/1437] Create ReleaseNotes097300.md --- sbndcode_wiki/Releases/ReleaseNotes097300.md | 65 ++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes097300.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes097300.md b/sbndcode_wiki/Releases/ReleaseNotes097300.md new file mode 100644 index 000000000..1b1e77e33 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes097300.md @@ -0,0 +1,65 @@ +--- +layout: page +title: ReleaseNotes097300 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.73.00 | 04 may 2023 | [ReleaseNotes](ReleaseNotes097300.html) | +| --- | --- | --- | + + + +sbndcode v09_73_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_73_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_73_00/sbndcode-v09_73_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* SBNSoftware/sbndcode#330: + * Add and install wirecell simulation cfg files and set up WIRECELL_PATH + + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_73_00 +* larsoft v09_73_00 +* sbnd_data v01_19_00 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-05-04 Fran Nicolas : Merge branch 'release/v09_73_00' +* 2023-05-04 Fran Nicolas : Update to larsoft v09_73_00 +* 2023-04-21 Hanyu WEI : Merge pull request #330 from weihythu/feature/hanyuwei_wcsim +* 2023-04-19 Hanyu WEI : Merge pull request #333 from weihythu/feature/hanyuwei_wcsim +* 2023-04-19 Hanyu WEI : Merge branch 'SBNSoftware:feature/hanyuwei_wcsim' into feature/hanyuwei_wcsim +* 2023-04-19 Hanyu Wei : update drift velocity to be consistent with default 1D sim +* 2023-04-19 Hanyu WEI : Merge pull request #332 from weihythu/feature/hanyuwei_wcsim +* 2023-04-19 Hanyu Wei : update to v24 wirecell cfg for larsoft/sbndcode v09_72_01 +* 2023-04-19 Hanyu Wei : sync to v09_72_01 +* 2023-04-18 Fran Nicolas : Merge tag 'v09_72_01' into develop +* 2023-04-13 Hanyu WEI : Merge branch 'develop' into feature/hanyuwei_wcsim +* 2023-04-05 Hanyu Wei : update sbnd_data version to be the latest/required one +* 2023-04-05 Hanyu Wei : add and install wirecell simulation cfg jsonnet files and fcls; WIRECELL_PATH configure in ups/product_dep + +sbndutil +--------------------------------------------------- + +* 2023-05-04 Fran Nicolas : Merge tag 'v09_73_00' into develop +* 2023-05-04 Fran Nicolas : Merge branch 'release/v09_73_00' +* 2023-05-04 Fran Nicolas : Update to larsoft v09_73_00 +* 2023-04-18 Fran Nicolas : Merge tag 'v09_72_01' into develop From 6374212bd695c0b908ff179fc6b8ecd0b46db0e5 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 9 May 2023 22:23:04 -0500 Subject: [PATCH 0575/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index ecbf2ded8..330284498 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_05_00 as of 01/2023) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_07_01 as of 05/2023) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` @@ -88,7 +88,7 @@ mrb g *Note:* you may need to do some setup of your github account with proper SSH keys. See [here](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh).) *Note:* This will pull from the HEAD of the develop branch and include any changes that may have been pushed since the last tag (`v#_##_##`) was created. Alternatively, if you want to build the tagged, working version that was set up in the previous steps, directly: ```bash -mrb g @ +mrb g @ ``` Data Logger @@ -38,7 +38,7 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: - 160 --> nth file from this EVB for this run - 20221110T113956 --> file open timestamp -## What happens to files +### What happens to files - EventBuilder writes file to /data/daq area - When closed, file is renamed according to the naming convention described above - Xporter.py process kicks in (icarus user): @@ -52,7 +52,7 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: - Files are removed from Online cluster when verified tape location -# Xporter +## Xporter Repository: https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter @@ -85,7 +85,7 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter "icarus_project.stage": "daq", "sbn_dm.beam_type": "BNB", "sbn_dm.event_count":0 } -# File Transfer System +## File Transfer System - Link: https://cdcvs.fnal.gov/redmine/projects/sam/wiki/File_Transfer_Service_Information - FTS is setup to look for files + metadata file in a “dropbox”, and then transfer them according to rules in configuration files. [Configs for ICARUS](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/FTS_config/icarus-evb_fts_config.ini) @@ -109,8 +109,8 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter ![FTS-monitor](https://user-images.githubusercontent.com/97683442/203768219-08770cdd-10c4-4ef2-aa1b-4b509261e9ca.JPG) -# Troubleshooting - +## Troubleshooting +### Evb machines disks overfilling - Usually we notice problems if /data starts getting full - Check if Xporter or FTS logs have errors. For example: - Xporter → usually can’t make metadata, e.g. can’t connect to RunHistory DB or weird file name @@ -119,12 +119,33 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - Talk to offline! - Maybe some massive problem with tape ... if files don’t get locations on tape, then they won’t be removed from online cluster -# Monitoring -## grafana +### Failed transfers +Occasionally (several times per year), the file transfer fails. This is normally detected by the storage team, who verifies the control sums. + +If the corruption is detected soon enough, the file might be still in dropbox on the Evb machine. In such case, it needs to be copied again, manually. + +If the original file cannot be found, which is likely to happen during the long calibration periods (e.g. during the beam off season), when the rules to delete local copies are relaxed, the corrupted file can be deleted. When removing with `rm` one must use the following path +``` +/pnfs/icarus/archive/... +``` +with `ifdh rm` either of the following paths should work: +``` +/pnfs/fnal.gov/usr/icarus/archive/... +/pnfs/icarus/archive/... +``` +Then, the file needs to be retired from samweb too: +``` +samweb -e icarus remove-file-location /pnfs/icarus/archive/<...path...> +samweb -e icarus retire-file +``` + + +## Monitoring +### grafana The following page provides overview of FTS from all Event Builder Machines: https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-30d&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb05&var-instance=icarus-fts-icarus-evb06 -## FTS status +### FTS status Tunnel required: ```ssh -KL 8787:localhost:8787 icarus@icarus-evb01.fnal.gov -J icarus@icarus-gateway01.fnal.gov``` @@ -133,7 +154,7 @@ http://localhost:8787/fts/status Provides more details for a single EVB, in particular status of individual files. It also allows to attempt to clear errors with "retry" buttons. -## Pool Manager +### Pool Manager Requires VPN, or web browser certificate @@ -141,5 +162,5 @@ https://fndca.fnal.gov:22880/pools/list/PoolManager Provides information on status of the usage of the IcarusReadWritePools space. -# References +## References SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From 8c82fa7fb737d83f81dea22f5f24fe5e4986041e Mon Sep 17 00:00:00 2001 From: Matteo Vicenzi <64699641+mvicenzi@users.noreply.github.com> Date: Mon, 23 Oct 2023 20:52:45 -0400 Subject: [PATCH 0693/1437] Update ICARUSConfigurationList.md adding new configurations for baseline scans --- sbn_online_wiki/ICARUSConfigurationList.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index 15976cf1a..f17d8bbce 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -31,7 +31,8 @@ When the configuration is no longer used, please move the information to another ### Testing | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | -| 18Sep2023 | M. Vicenzi | PMT_test_clk_TRIGOUT_only_ww03_phase00001-3 PMT_test_clk_TRIGOUT_only_ww00001-4 PMT_test_clk_TRIGOUT_all_true00001 PMT_test_clk_TRIGOUT_all_false00001-3 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configurations for testing PR #114 of sbndaq-artdaq. Motherboard clock or clock phase put in TRG-OUT. Never use for physics quality runs. | +| 18Sep2023 | M. Vicenzi | PMT_test_clk_TRIGOUT_only_ww03_phase00001-3 PMT_test_clk_TRIGOUT_only_ww00001-4 PMT_test_clk_TRIGOUT_all_true00001 PMT_test_clk_TRIGOUT_all_false00001-3 | boot_PMTlaser.txt | Configurations for testing PR #114 of sbndaq-artdaq. Motherboard clock or clock phase put in TRG-OUT. Never use for physics quality runs. | +| 23Oct2023 | M. Vicenzi | Test_PMTbaselines_nom00001 Test_PMTbaselines_m5_00001 Test_PMTbaselines_p5_00001 Test_PMTbaselines_m10_00001 Test_PMTbaselines_p10_00001 Test_PMTbaselines_m20_00001 Test_PMTbaselines_p20_00001 | boot_PMTlaser.txt | Configurations for PMT baseline scans with different DC offsets (+-5%, +-10%, +-20%). | ## No longer used configurations ### Physics From 5cf1756de58be19835b4e5bb1f034d867fc05c70 Mon Sep 17 00:00:00 2001 From: Matteo Vicenzi <64699641+mvicenzi@users.noreply.github.com> Date: Tue, 24 Oct 2023 11:28:45 -0400 Subject: [PATCH 0694/1437] Update ICARUSConfigurationList.md adding configurations for trigger thresholds scan --- sbn_online_wiki/ICARUSConfigurationList.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index f17d8bbce..a6e01db3c 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -32,7 +32,8 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | | 18Sep2023 | M. Vicenzi | PMT_test_clk_TRIGOUT_only_ww03_phase00001-3 PMT_test_clk_TRIGOUT_only_ww00001-4 PMT_test_clk_TRIGOUT_all_true00001 PMT_test_clk_TRIGOUT_all_false00001-3 | boot_PMTlaser.txt | Configurations for testing PR #114 of sbndaq-artdaq. Motherboard clock or clock phase put in TRG-OUT. Never use for physics quality runs. | -| 23Oct2023 | M. Vicenzi | Test_PMTbaselines_nom00001 Test_PMTbaselines_m5_00001 Test_PMTbaselines_p5_00001 Test_PMTbaselines_m10_00001 Test_PMTbaselines_p10_00001 Test_PMTbaselines_m20_00001 Test_PMTbaselines_p20_00001 | boot_PMTlaser.txt | Configurations for PMT baseline scans with different DC offsets (+-5%, +-10%, +-20%). | +| 23Oct2023 | M. Vicenzi | Test_PMTbaselines_nom00001 Test_PMTbaselines_nom00002 Test_PMTbaselines_m5_00001 Test_PMTbaselines_p5_00001 Test_PMTbaselines_m10_00001 Test_PMTbaselines_p10_00001 Test_PMTbaselines_m20_00001 Test_PMTbaselines_p20_00001 | boot_PMTlaser.txt | Configurations for PMT baseline scans with different DC offsets (+-5%, +-10%, +-20%). | +| 24Oct2023 | M. Vicenzi | Test_Physics_5_9_thr360_ExtendedGate00001 Test_Physics_5_9_thr390_ExtendedGate00001 Test_Physics_5_9_thr420_ExtendedGate00001 Test_Physics_5_8_thr360_ExtendedGate00001 Test_Physics_5_8_thr390_ExtendedGate00001 Test_Physics_5_8_thr420_ExtendedGate00001 Test_Physics_4_9_thr360_ExtendedGate00001 Test_Physics_4_9_thr390_ExtendedGate00001 Test_Physics_4_9_thr420_ExtendedGate00001 | boot_PMTlaser.txt | Configurations for trigger majorities and thresholds scan, using newly-calibrated baselines and BNB offbeam gate extended to 10.1us | ## No longer used configurations ### Physics From 56dafd08d33bda965546aa4e5caefed2b4226512 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 26 Oct 2023 15:01:42 -0500 Subject: [PATCH 0695/1437] Update ICARUSConfigurationList.md Calibration_MINBIAS_Standard00004 --- sbn_online_wiki/ICARUSConfigurationList.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index a6e01db3c..623b19a80 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -23,6 +23,7 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | OLD configuration to USE until new artdaq becomes the default | +| 26Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_Standard00004 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated: grafana levels, grapha reporting_interval, added new changes to PMT levels, added CRT telescope and bottom CRT | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_Standard00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | cloned from Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 with updated Grafana metric levels and pmt_standatd.fcl changes by M.Vicenzi | | 8Sep2023 | GAL | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00005 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00004 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00002 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configurations for testing new organization of Grafana metric levels | | 14Aug2023 | M. Vicenzi, D. Torretta | PMTlaser00037 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configuration for PMT test runs with laser at 10Hz. Updated from PMTlaser00036 with newer `icaruspmt**.fcl` with latest settings of PMT thresholds and baselines | From 5309f84ce5ec6b4644f71bad9d116c574b5da48f Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 26 Oct 2023 15:02:06 -0500 Subject: [PATCH 0696/1437] Update ICARUSConfigurationList.md --- sbn_online_wiki/ICARUSConfigurationList.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index 623b19a80..669a83eb4 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -23,7 +23,7 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | OLD configuration to USE until new artdaq becomes the default | -| 26Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_Standard00004 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated: grafana levels, grapha reporting_interval, added new changes to PMT levels, added CRT telescope and bottom CRT | +| 26Oct2023 | AA/DT/MV | Calibration_MINBIAS_Standard00004 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated: grafana levels, grapha reporting_interval, added new changes to PMT levels, added CRT telescope and bottom CRT | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_Standard00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | cloned from Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 with updated Grafana metric levels and pmt_standatd.fcl changes by M.Vicenzi | | 8Sep2023 | GAL | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00005 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00004 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00002 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configurations for testing new organization of Grafana metric levels | | 14Aug2023 | M. Vicenzi, D. Torretta | PMTlaser00037 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configuration for PMT test runs with laser at 10Hz. Updated from PMTlaser00036 with newer `icaruspmt**.fcl` with latest settings of PMT thresholds and baselines | From ebf84d80098bc505194d8a82ad7842f750752cd7 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Fri, 27 Oct 2023 13:42:00 -0500 Subject: [PATCH 0697/1437] Update ICARUSConfigurationList.md Calibration_MINBIAS_Standard00005 --- sbn_online_wiki/ICARUSConfigurationList.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index 669a83eb4..5ef578cc7 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -23,6 +23,7 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | OLD configuration to USE until new artdaq becomes the default | +| 27Oct2023 | AA/DT/MV | Calibration_MINBIAS_Standard00005 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated Calibration_MINBIAS_Standard00004 with missing files for CRT telescope | | 26Oct2023 | AA/DT/MV | Calibration_MINBIAS_Standard00004 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated: grafana levels, grapha reporting_interval, added new changes to PMT levels, added CRT telescope and bottom CRT | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_Standard00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | cloned from Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 with updated Grafana metric levels and pmt_standatd.fcl changes by M.Vicenzi | | 8Sep2023 | GAL | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00005 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00004 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00002 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configurations for testing new organization of Grafana metric levels | From 79e932e55c8bda8108e5f4a23200b2c55494f046 Mon Sep 17 00:00:00 2001 From: Matteo Vicenzi <64699641+mvicenzi@users.noreply.github.com> Date: Sat, 28 Oct 2023 16:04:45 -0400 Subject: [PATCH 0698/1437] Update ICARUSConfigurationList.md --- sbn_online_wiki/ICARUSConfigurationList.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index 5ef578cc7..edde0e372 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -31,6 +31,7 @@ When the configuration is no longer used, please move the information to another | 30Aug2023 | M. Murphy | Calibration_withBottomCRT00003 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Standard bottom CRT calibration. Updated from 00002 to move one of the files referenced by icaruscrtbottom_standard.fcl to a more accessible location. | ### Testing + | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | | 18Sep2023 | M. Vicenzi | PMT_test_clk_TRIGOUT_only_ww03_phase00001-3 PMT_test_clk_TRIGOUT_only_ww00001-4 PMT_test_clk_TRIGOUT_all_true00001 PMT_test_clk_TRIGOUT_all_false00001-3 | boot_PMTlaser.txt | Configurations for testing PR #114 of sbndaq-artdaq. Motherboard clock or clock phase put in TRG-OUT. Never use for physics quality runs. | From 92e9b96f216eb17dabea73ca7747b5057490ffd6 Mon Sep 17 00:00:00 2001 From: Matteo Vicenzi <64699641+mvicenzi@users.noreply.github.com> Date: Sat, 28 Oct 2023 16:10:24 -0400 Subject: [PATCH 0699/1437] Update ICARUSConfigurationList.md --- sbn_online_wiki/ICARUSConfigurationList.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index edde0e372..81679fe97 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -34,9 +34,9 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | -| 18Sep2023 | M. Vicenzi | PMT_test_clk_TRIGOUT_only_ww03_phase00001-3 PMT_test_clk_TRIGOUT_only_ww00001-4 PMT_test_clk_TRIGOUT_all_true00001 PMT_test_clk_TRIGOUT_all_false00001-3 | boot_PMTlaser.txt | Configurations for testing PR #114 of sbndaq-artdaq. Motherboard clock or clock phase put in TRG-OUT. Never use for physics quality runs. | -| 23Oct2023 | M. Vicenzi | Test_PMTbaselines_nom00001 Test_PMTbaselines_nom00002 Test_PMTbaselines_m5_00001 Test_PMTbaselines_p5_00001 Test_PMTbaselines_m10_00001 Test_PMTbaselines_p10_00001 Test_PMTbaselines_m20_00001 Test_PMTbaselines_p20_00001 | boot_PMTlaser.txt | Configurations for PMT baseline scans with different DC offsets (+-5%, +-10%, +-20%). | -| 24Oct2023 | M. Vicenzi | Test_Physics_5_9_thr360_ExtendedGate00001 Test_Physics_5_9_thr390_ExtendedGate00001 Test_Physics_5_9_thr420_ExtendedGate00001 Test_Physics_5_8_thr360_ExtendedGate00001 Test_Physics_5_8_thr390_ExtendedGate00001 Test_Physics_5_8_thr420_ExtendedGate00001 Test_Physics_4_9_thr360_ExtendedGate00001 Test_Physics_4_9_thr390_ExtendedGate00001 Test_Physics_4_9_thr420_ExtendedGate00001 | boot_PMTlaser.txt | Configurations for trigger majorities and thresholds scan, using newly-calibrated baselines and BNB offbeam gate extended to 10.1us | +| 18Sep2023 | M. Vicenzi | PMT_test_clk_TRIGOUT_only_ww03_phase00001-3 PMT_test_clk_TRIGOUT_only_ww00001-4 PMT_test_clk_TRIGOUT_all_true00001 PMT_test_clk_TRIGOUT_all_false00001-3 | boot_PMTlaser.txt | Configurations for testing PR #114 of sbndaq-artdaq. Motherboard clock or clock phase put in TRG-OUT. Never use for physics quality runs. | +| 23Oct2023 | M. Vicenzi | Test_PMTbaselines_nom00001 Test_PMTbaselines_nom00002 Test_PMTbaselines_m5_00001 Test_PMTbaselines_p5_00001 Test_PMTbaselines_m10_00001 Test_PMTbaselines_p10_00001 Test_PMTbaselines_m20_00001 Test_PMTbaselines_p20_00001 | boot_PMTlaser.txt | Configurations for PMT baseline scans with different DC offsets (+-5%, +-10%, +-20%). | +| 24Oct2023 | M. Vicenzi | Test_Physics_5_9_thr360_ExtendedGate00001 Test_Physics_5_9_thr390_ExtendedGate00001 Test_Physics_5_9_thr420_ExtendedGate00001 Test_Physics_5_8_thr360_ExtendedGate00001 Test_Physics_5_8_thr390_ExtendedGate00001 Test_Physics_5_8_thr420_ExtendedGate00001 Test_Physics_4_9_thr360_ExtendedGate00001 Test_Physics_4_9_thr390_ExtendedGate00001 Test_Physics_4_9_thr420_ExtendedGate00001 | boot_Majority_moreEvb.txt | Configurations for trigger majorities and thresholds scan using newly-calibrated baselines and BNB offbeam gate extended to 10.1us | ## No longer used configurations ### Physics From abdf73e86fd89126edbb2166f2ad48bd0f0d9571 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 30 Oct 2023 13:45:04 -0500 Subject: [PATCH 0700/1437] Update ICARUSConfigurationList.md old configurations retired --- sbn_online_wiki/ICARUSConfigurationList.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index 81679fe97..81fbb3bb7 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -23,9 +23,7 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | OLD configuration to USE until new artdaq becomes the default | -| 27Oct2023 | AA/DT/MV | Calibration_MINBIAS_Standard00005 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated Calibration_MINBIAS_Standard00004 with missing files for CRT telescope | -| 26Oct2023 | AA/DT/MV | Calibration_MINBIAS_Standard00004 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated: grafana levels, grapha reporting_interval, added new changes to PMT levels, added CRT telescope and bottom CRT | -| 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_Standard00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | cloned from Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 with updated Grafana metric levels and pmt_standatd.fcl changes by M.Vicenzi | +| 27Oct2023 | AA | Calibration_MINBIAS_Standard00005 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated Calibration_MINBIAS_Standard00004 with missing files for CRT telescope | | 8Sep2023 | GAL | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00005 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00004 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00002 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configurations for testing new organization of Grafana metric levels | | 14Aug2023 | M. Vicenzi, D. Torretta | PMTlaser00037 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configuration for PMT test runs with laser at 10Hz. Updated from PMTlaser00036 with newer `icaruspmt**.fcl` with latest settings of PMT thresholds and baselines | | 30Aug2023 | M. Murphy | Calibration_withBottomCRT00003 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Standard bottom CRT calibration. Updated from 00002 to move one of the files referenced by icaruscrtbottom_standard.fcl to a more accessible location. | @@ -41,4 +39,9 @@ When the configuration is no longer used, please move the information to another ## No longer used configurations ### Physics ### Calibration +| date | responsible | name | bootfile | description | +| ---- | ----------- | ---- | -------- | ----------- | +| 26Oct2023 | AA/DT/MV | Calibration_MINBIAS_Standard00004 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated: grafana levels, grapha reporting_interval, added new changes to PMT levels, added CRT telescope and bottom CRT | +| 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_Standard00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | cloned from Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 with updated Grafana metric levels and pmt_standatd.fcl changes by M.Vicenzi | + ### Testing From 4dc2972a2dd647dab0b39eee9a169e15e8002abc Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Fri, 3 Nov 2023 10:27:45 -0500 Subject: [PATCH 0701/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 0f58458bd..11839a614 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -35,11 +35,11 @@ source /daq/software/products_dev/setup #dev area ``` 3. Setup the version of sbndaq we are based. To see a list of the different available versions, use ```bash -ups list -aK+ sbndaq -qe20:s112:prof +ups list -aK+ sbndaq -qe20:s120a:prof ``` -It's recommended you use the latest available version (this is currently v1_08_04 as of 10/2023) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_08_04 as of 11/2023) with e20:prof:s120a as the option. Then, to set up, use: ```bash -setup sbndaq v#_##_## -qe20:prof:s112 +setup sbndaq v#_##_## -qe20:prof:s120a ``` Quick detour: - `e` qualifiers specify the gcc compiler version @@ -208,7 +208,7 @@ export MRB_PROJECT=sbndaq ``` And then to checkout and build `sbndaq` and `sbndaq-artdaq` (most common situation) source the script below _from your work directory_: ```bash -setup sbndaq v1_08_04 -q e20:prof:s112 +setup sbndaq v1_08_04 -q e20:prof:s120a export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) echo sbndaq version: $my_sbndaq_version From a93fddd60717e0dcc894dab8803b7588251e5146 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 6 Nov 2023 15:18:13 -0600 Subject: [PATCH 0702/1437] Update ICARUSConfigurationList.md PMT_Laser_Standard00001, Physics_Standard00002 --- sbn_online_wiki/ICARUSConfigurationList.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index 81fbb3bb7..62de6deb9 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -14,6 +14,7 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | +| 06Nov2023 | AA,DT,AC,MV | Physics_Standard00002 | boot_Majority_moreEvb.txt | Physics_Standard00001 with added bottom CRT, updated PMT pedestals, updated TPC metric filename, grafana reporting level: 15s | | 06Oct2023 | DT | Physics_Standard00001 | boot_Majority_moreEvb.txt | cloned from Physics_General_thr390_Majority_5_9_OverlappingWindow_wr_0_LockTemp_newpeds_win_10s_DAQTest00002 with updated Grafana metrics and pmt_standard.fcl changes by M. Vicenzi | | 06Oct2023 | DT | Physics_Adders00001 | boot_Majority_moreEvb.txt | cloned from Physics_General_thr390_Majority_5_9_OverlappingWindow_wr_0_LockTemp_newpeds_win_10s_Adders_Corner_DAQTest00001 with updated Grafana metrics and pmt_standard.fcl changes by M. Vicenzi | | 09Oct2023 | DT | TriggerTest_MinBias_1Hz_RL75000_noEnable_oct2023_00001 | boot_Majority_moreEvb.txt | cloned from TriggerTest_MinBias_1Hz_RL75000_noEnable_feb2023_00003 with updated Grafana metrics and pmt_standard.fcl changes by M. Vicenzi; config for MinBias triggers and extended PMT readout window | @@ -22,6 +23,7 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | +| 06Nov2023 | AA,DT,AC,MV | PMT_Laser_Standard00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | PMTlaser00037 with updated PMT pedestals, updated grafana settings, removed dataloggers, cleaned up filename comments | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | OLD configuration to USE until new artdaq becomes the default | | 27Oct2023 | AA | Calibration_MINBIAS_Standard00005 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated Calibration_MINBIAS_Standard00004 with missing files for CRT telescope | | 8Sep2023 | GAL | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00005 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00004 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00002 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configurations for testing new organization of Grafana metric levels | From 42a378c232d245eb87504bc254235bd0fb88390e Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Wed, 8 Nov 2023 12:56:21 -0600 Subject: [PATCH 0703/1437] Create NAS_migration.md Initial version of the NAS migration page --- NAS_migration.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 NAS_migration.md diff --git a/NAS_migration.md b/NAS_migration.md new file mode 100644 index 000000000..f812fdbf8 --- /dev/null +++ b/NAS_migration.md @@ -0,0 +1,51 @@ +--- +layout: page +title: NAS migration to CephFS +description: Detail on app/data volimes migration +toc: true +--- + + + + +NAS migration to CephFS +================================================== + +Storage Team scheduled for Nov 15th 2023 the migration from NAS to CephFS for Scintific NAS volumes used by: +SBN, SBND and ICARUS + +> *Users are encouraged to remove unused/unneeded files from app and data volumes to easy the migration.* + +There are three main volumes that need to be migrated: +- **app**: Storage will take care of copying the app areas. +- **dat*a*: Users are required copy over the data areas by themselves. +- **daq**: (SBND only for test stand nodes) Users are required to copy over their data from the daq areas by themselves. + +This migration requires downtime. The timeline would be the following: +- On 11/15/23 at 09:00 am with a duration of 8 hours (possibly less), the downtime begins, Storage Team starts necessary steps for the migration. +During this time, the data in the app areas won’t be accessible. + +> NOTE: +> - this implies shared accounts, including production accounts icaruspro and sbndpro, that have the home directory in app volume to not be able to login. +> - the 8h downtime is probably overestimate, Storage Team want to make sure they have all the time they need for the app volume migration, possibly the downtime will be shorter. +> - The following day (11/16/23), Storage Team will be available to make sure the migration was completed. + +The new mount points for CephFS will get a "/exp" prefix: + +NAS volume | CephFS volume +-------------| ------------------ +/sbnd/app | /exp/sbnd/app +/sbnd/data | /exp/sbnd/data +/sbn/app | /exp/sbn/app +/sbn/data | /exp/sbn/data +/icarus/app | /exp/icarus/app +/icarus/data | /exp/icarus/data + +The old NAS volumes will be available until they are discontinued (approx May 2024) +- Other than that the CephFS file system will work the same as the NAS from the users’ perspective. You can find user documentation here: +https://fifewiki.fnal.gov/wiki/Ceph. + +More details can be found in slides presented at Oct 31 SBN AI Meeting: +[Storage migration from NAS to CephFS](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=33502) + +For any comment/concern feel free to reach out by email or on slack SBND/ICARUS CS-Liaison: [Vito Di Benedetto](mailto:vito@fnal.gov) From a539dd54d63782f71ba692173e500f48d603c4b8 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 9 Nov 2023 16:04:06 -0600 Subject: [PATCH 0704/1437] Update ICARUSConfigurationList.md Calibration_MINBIAS_Standard00006 Physics_Standard00003 PMT_Laser_Standard00002 TriggerTest_MinBias_1Hz_RL75000_noEnable_oct2023_00003 --- sbn_online_wiki/ICARUSConfigurationList.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/ICARUSConfigurationList.md b/sbn_online_wiki/ICARUSConfigurationList.md index 62de6deb9..9f428d93b 100644 --- a/sbn_online_wiki/ICARUSConfigurationList.md +++ b/sbn_online_wiki/ICARUSConfigurationList.md @@ -14,7 +14,9 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | -| 06Nov2023 | AA,DT,AC,MV | Physics_Standard00002 | boot_Majority_moreEvb.txt | Physics_Standard00001 with added bottom CRT, updated PMT pedestals, updated TPC metric filename, grafana reporting level: 15s | +| 09Nov2023 | DT,AA,AC | TriggerTest_MinBias_1Hz_RL75000_noEnable_oct2023_00003 | boot_Majority_moreEvb.txt | TriggerTest_MinBias_1Hz_RL75000_noEnable_oct2023_00002 with added artdaqFragWatcher, grafana reporting interval: 15s, fixed name of tpc_metric logfile. Requires DAQ area DAQ_2023-10-19_REL_v1_08_05 or newer. | +| 06Nov2023 | AA,DT,AC | Physics_Standard00003 | boot_Majority_moreEvb.txt | Physics_Standard00002 with added artdaqFragWatcher. Requires DAQ area DAQ_2023-10-19_REL_v1_08_05 or newer.| +| 06Nov2023 | AA,DT,AC,MV | Physics_Standard00002 | boot_Majority_moreEvb.txt | Physics_Standard00001 with added bottom CRT, updated PMT pedestals, updated TPC metric filename, grafana reporting interval: 15s. Requires DAQ area DAQ_2023-10-19_REL_v1_08_04 or newer.| | 06Oct2023 | DT | Physics_Standard00001 | boot_Majority_moreEvb.txt | cloned from Physics_General_thr390_Majority_5_9_OverlappingWindow_wr_0_LockTemp_newpeds_win_10s_DAQTest00002 with updated Grafana metrics and pmt_standard.fcl changes by M. Vicenzi | | 06Oct2023 | DT | Physics_Adders00001 | boot_Majority_moreEvb.txt | cloned from Physics_General_thr390_Majority_5_9_OverlappingWindow_wr_0_LockTemp_newpeds_win_10s_Adders_Corner_DAQTest00001 with updated Grafana metrics and pmt_standard.fcl changes by M. Vicenzi | | 09Oct2023 | DT | TriggerTest_MinBias_1Hz_RL75000_noEnable_oct2023_00001 | boot_Majority_moreEvb.txt | cloned from TriggerTest_MinBias_1Hz_RL75000_noEnable_feb2023_00003 with updated Grafana metrics and pmt_standard.fcl changes by M. Vicenzi; config for MinBias triggers and extended PMT readout window | @@ -23,9 +25,11 @@ When the configuration is no longer used, please move the information to another | date | responsible | name | bootfile | description | | ---- | ----------- | ---- | -------- | ----------- | -| 06Nov2023 | AA,DT,AC,MV | PMT_Laser_Standard00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | PMTlaser00037 with updated PMT pedestals, updated grafana settings, removed dataloggers, cleaned up filename comments | +| 09Oct2023 | AA,DT,AC | Calibration_MINBIAS_Standard00006 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Calibration_MINBIAS_Standard00005 with added artdaqFragWatcher. Requires DAQ area DAQ_2023-10-19_REL_v1_08_05 or newer. | +| 09Nov2023 | AA,DT,AC | PMT_Laser_Standard00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | PMT_Laser_Standard00001 with added artdaqFragWatcher. Requires DAQ area DAQ_2023-10-19_REL_v1_08_05 or newer. | +| 06Nov2023 | AA,DT,AC,MV | PMT_Laser_Standard00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | PMTlaser00037 with updated PMT pedestals, updated grafana settings, removed dataloggers, cleaned up filename comments. Requires DAQ area DAQ_2023-10-19_REL_v1_08_04 or newer. | | 06Oct2023 | GAL/Antoni ? | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00002 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | OLD configuration to USE until new artdaq becomes the default | -| 27Oct2023 | AA | Calibration_MINBIAS_Standard00005 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated Calibration_MINBIAS_Standard00004 with missing files for CRT telescope | +| 27Oct2023 | AA | Calibration_MINBIAS_Standard00005 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Updated Calibration_MINBIAS_Standard00004 with missing files for CRT telescope. Requires DAQ area DAQ_2023-10-19_REL_v1_08_04 or newer. | | 8Sep2023 | GAL | Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00005 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00004 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_DAQTest00003 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00002 Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_GALTest00001 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configurations for testing new organization of Grafana metric levels | | 14Aug2023 | M. Vicenzi, D. Torretta | PMTlaser00037 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Configuration for PMT test runs with laser at 10Hz. Updated from PMTlaser00036 with newer `icaruspmt**.fcl` with latest settings of PMT thresholds and baselines | | 30Aug2023 | M. Murphy | Calibration_withBottomCRT00003 | boot_MinBias_VeryHighRate_multiple_art_processes.txt | Standard bottom CRT calibration. Updated from 00002 to move one of the files referenced by icaruscrtbottom_standard.fcl to a more accessible location. | From 000999c5fb426e614cbdc333b3b66b4c5c2a51c8 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 9 Nov 2023 16:55:03 -0600 Subject: [PATCH 0705/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 11839a614..110a8623d 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s120a:prof ``` -It's recommended you use the latest available version (this is currently v1_08_04 as of 11/2023) with e20:prof:s120a as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_08_05 as of 11/2023) with e20:prof:s120a as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s120a ``` @@ -89,7 +89,7 @@ mrb g *Note:* you may need to do some setup of your github account with proper SSH keys. See [here](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh).) *Note:* This will pull from the HEAD of the develop branch and include any changes that may have been pushed since the last tag (`v#_##_##`) was created. Alternatively, if you want to build the tagged, working version that was set up in the previous steps, directly: ```bash -mrb g @ +mrb g @ ``` Contact ------------------------------------------------------------------------------------------------ From cd769847385a19cb406e454636e52e535c446f14 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:38:49 -0500 Subject: [PATCH 0865/1437] Add GPVM migration wiki link --- icaruscode_wiki/Computing_Resources.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/icaruscode_wiki/Computing_Resources.md b/icaruscode_wiki/Computing_Resources.md index 6341eeab6..f48b93af2 100644 --- a/icaruscode_wiki/Computing_Resources.md +++ b/icaruscode_wiki/Computing_Resources.md @@ -176,6 +176,10 @@ The access is via SSH with FNAL.GOV [Kerberos credentials]. The nodes are called: `icarusgpvm0X.fnal.gov` and `icarusbuild0X.fnal.gov` (see [ICARUS GPVM page](ICARUS_servers.md) for more details). +With SL7 reaching EOL on June 30, 2024 GPVMs are being migrated to EL9. +In case users have the need to use SL7, the is the possibility to use SL7 dev container. +More details are in the [GPVM migration](https://sbnsoftware.github.io/GPVM_migration) wiki page. + The GPVM interactive machines have no relevant local storage, and areas in `/icarus` ("BlueArc") and `/pnfs` ("dCache") should be used (the home directory works too, but it has small allowance). From 4514354fe86f6e285e8e6e5967b9372371d9d7e6 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Wed, 1 May 2024 11:46:06 -0500 Subject: [PATCH 0866/1437] Update GPVM_migration.md --- GPVM_migration.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/GPVM_migration.md b/GPVM_migration.md index 16140fe6a..5c51b744c 100644 --- a/GPVM_migration.md +++ b/GPVM_migration.md @@ -18,12 +18,12 @@ Computing set up test VMs and installed build nodes for users to get acquainted ICARUS: - icarusbuild02.fnal.gov - icarusgpvm-test-al9.fnal.gov -- icarusgpvm0[4-6].fnal.gov +- icarusgpvm0[2-6].fnal.gov SBND: - sbndbuild03.fnal.gov - sbndgpvm-test-al9.fnal.gov -- sbndgpvm0[34].fnal.gov +- sbndgpvm0[2-4].fnal.gov As part of the migration to EL9 build nodes that can't be upgraded to EL9 will be retired by June 30th. This will affect sbndbuild01/02 and icarusbuild01. @@ -38,14 +38,12 @@ ICARUS: | Nodes | Date | | :----------------| :---------------------| -| icarusgpvm0[23] | April 30th 2024 | | icarusgpvm01 | sometime in June 2024 | SBND: | Nodes | Date | | :-------------| :--------------------- | -| sbndgpvm02 | April 30th 2024 | | sbndgvpm01 | sometime in June 2024 | @@ -66,7 +64,7 @@ because at that point we wouldn't be able to rebuild the container to exclude pa To start the SL7 container users can run the following script: `sh /exp/$(id -ng)/data/users/vito/podman/start_SL7dev.sh` -The script takes care to source `~/.profile` and/or `~/.bash_profile`. +The script takes care to source `/etc/profile`, `~/.profile` and/or `~/.bash_profile`. Container features: - it mounts the user home directory, From c5a018b8882c85c5a38df0b583c8ab57d9bb67a3 Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Wed, 1 May 2024 14:46:16 -0400 Subject: [PATCH 0867/1437] Create v09_89_01_01.md --- .../Releases/v09_89_01_01.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/v09_89_01_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/v09_89_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/v09_89_01_01.md new file mode 100644 index 000000000..764f65ce7 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/v09_89_01_01.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbncode_v09_89_01_01 +toc: true +--- + +sbncode_v09_89_01_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +01 May 2024 + +Purpose +--------------------------------------------------- +* Patch release + +New features +--------------------------------------------------- +A patch to sbncode (v09_89_01_01) has been cut and distributed + +* sbncode (v09_89_01_01): + + Using: + * larsoft v09_89_01 + + Includes: + * SBNSoftware/sbncode supera update for ICARUS production #460 + * Supera fcl update for intime cosmics ML sample generation #456 + * Adding additional emuTrigger safety checks to the CAFMaker module #449 + +Extra info +--------------------------------------------------- From a359b88e6eebeb252aa63dea0eefd28bdd5b3f0d Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Wed, 1 May 2024 14:47:20 -0400 Subject: [PATCH 0868/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index be758961d..dac9f71ef 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_89_01_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_89_01_01) `v09_89_01` | 'sbncode' weekly release|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_89_01) `v09_88_00_04` | 'sbncode' SBN2024A production patch|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_88_00_04) `v09_88_00_03` | 'sbncode' SBN2024A production patch|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_88_00_03) From 577689484cd6097e557a1844a09265e5f8a19496 Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Wed, 1 May 2024 14:48:45 -0400 Subject: [PATCH 0869/1437] Rename v09_89_01_01.md to sbncode_v09_89_01_01.md --- .../Releases/{v09_89_01_01.md => sbncode_v09_89_01_01.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename AnalysisInfrastructure/ReleaseManagement/Releases/{v09_89_01_01.md => sbncode_v09_89_01_01.md} (100%) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/v09_89_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_89_01_01.md similarity index 100% rename from AnalysisInfrastructure/ReleaseManagement/Releases/v09_89_01_01.md rename to AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_89_01_01.md From b81f9d58491a873730c865c5115e9120dfcfe0a0 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 1 May 2024 13:42:56 -0700 Subject: [PATCH 0870/1437] Added link to the optical reconstruction sample summary --- icaruscode_wiki/Wiki.md | 1 + 1 file changed, 1 insertion(+) diff --git a/icaruscode_wiki/Wiki.md b/icaruscode_wiki/Wiki.md index 7229e5664..9192fd0d7 100644 --- a/icaruscode_wiki/Wiki.md +++ b/icaruscode_wiki/Wiki.md @@ -57,6 +57,7 @@ Monte Carlo productions * notes from specific projects: * [samples used for NuMI interactions](samples/NuMI.md) * [samples used for trigger simulation](samples/trigger_simulation.md) + * [samples used for optical reconstruction](samples/opreco.md) * [finding _data_ files](samples/datafiles.md) From e94cda79fd6e27a38a8eb9a5afa0baa84bd55974 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Wed, 1 May 2024 18:44:56 -0500 Subject: [PATCH 0871/1437] Update Computing_resources.md --- sbndcode_wiki/Computing_resources.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sbndcode_wiki/Computing_resources.md b/sbndcode_wiki/Computing_resources.md index f676713ef..79964142a 100644 --- a/sbndcode_wiki/Computing_resources.md +++ b/sbndcode_wiki/Computing_resources.md @@ -110,12 +110,13 @@ The nodes and their OS version are: Node | OS ----------------------|------- `sbndgpvm01.fnal.gov` | SLF 7 - `sbndgpvm02.fnal.gov` | SLF 7 - `sbndgpvm03.fnal.gov` | SLF 7 - `sbndgpvm04.fnal.gov` | SLF 7 - `sbndgpvm-test-al9.fnal.gov` | Alma 9 + `sbndgpvm02.fnal.gov` | EL9 + `sbndgpvm03.fnal.gov` | EL9 + `sbndgpvm04.fnal.gov` | EL9 + `sbndgpvm-test-al9.fnal.gov` | EL9 `sbndbuild01.fnal.gov` | SLF 7 `sbndbuild02.fnal.gov` | SLF 7 + `sbndbuild03.fnal.gov` | EL9 @@ -132,6 +133,9 @@ jobs beyond the size of a test job (say, 100 events). [Information about all SBND GPVM's](SBND_servers.html) is on a [separate page](SBND_servers.md). +With SL7 reaching EOL on June 30, 2024 GPVMs are being migrated to EL9. +In case users have the need to use SL7, there is the possibility to use SL7 dev container. +More details are in the [GPVM migration](https://sbnsoftware.github.io/GPVM_migration) wiki page. Opening a ticket in Fermilab Service Desk From 0df7a940ad6cd0e66841a44f923108be1a0254a2 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Wed, 1 May 2024 18:45:08 -0500 Subject: [PATCH 0872/1437] Update Computing_Resources.md --- icaruscode_wiki/Computing_Resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/icaruscode_wiki/Computing_Resources.md b/icaruscode_wiki/Computing_Resources.md index f48b93af2..91fd3f857 100644 --- a/icaruscode_wiki/Computing_Resources.md +++ b/icaruscode_wiki/Computing_Resources.md @@ -177,7 +177,7 @@ The nodes are called: `icarusgpvm0X.fnal.gov` and `icarusbuild0X.fnal.gov` (see [ICARUS GPVM page](ICARUS_servers.md) for more details). With SL7 reaching EOL on June 30, 2024 GPVMs are being migrated to EL9. -In case users have the need to use SL7, the is the possibility to use SL7 dev container. +In case users have the need to use SL7, there is the possibility to use SL7 dev container. More details are in the [GPVM migration](https://sbnsoftware.github.io/GPVM_migration) wiki page. The GPVM interactive machines have no relevant local storage, From 07287e269289d435a3db09ff9cc964ca409c7b7a Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 1 May 2024 16:52:34 -0700 Subject: [PATCH 0873/1437] Added optical reconstruction sample page (opreco.md) --- icaruscode_wiki/samples/opreco.md | 151 ++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 icaruscode_wiki/samples/opreco.md diff --git a/icaruscode_wiki/samples/opreco.md b/icaruscode_wiki/samples/opreco.md new file mode 100644 index 000000000..29f53c58a --- /dev/null +++ b/icaruscode_wiki/samples/opreco.md @@ -0,0 +1,151 @@ +Optical reconstruction samples +=============================== + +This is meant to be a list of the samples that are used for optical detector reconstruction. +This kind of lists has the remarkable ability of falling out of date in days, so in case of doubt throw a line to [SBN Slack channel #icarus-light-analysis (private)](https://shortbaseline.slack.com/archives/C02JK6ZUTLL) or ask the working group conveners. + +Sample list: +* [data runs `11813` and `11816` (`v09_87_00`)](#runs-11813-and-11816-v09_87_00) + +## Runs `11813` and `11816` (`v09_87_00`) + +#### Sample description + +Run | `11813` | `11816` +---------------------- | ---------------------- | --------------------- +Link to datasheet | [`11813`](https://docs.google.com/spreadsheets/d/1dQk0L4VjpuArQqWBkbO334lJVZJd0Ldn0wQkMS9pEH8/edit?pli=1#gid=1592536638&range=A17) | [`11816`](https://docs.google.com/spreadsheets/d/1dQk0L4VjpuArQqWBkbO334lJVZJd0Ldn0wQkMS9pEH8/edit?pli=1#gid=1592536638&range=A20) +Run period | Run3 +Date | `2024-03-18 17:00` | `2024-03-20 14:17` +Duration | `17:42:18` | `20:24:33` +NuMI repetition rate | 14/15 (0.933 Hz) +BNB repetition rate | 4× NuMI (3.733 Hz) +NuMI PoT/spill | 3.3·10¹³ (mode) | 3.7·10¹³ (mode) +BNB PoT/spill | 4.16·10¹² (mode) | 3.20·10¹² (mode) +Events | ≥`45840` | ≥`55534` +Trigger configuration | physics, majority only | physics standard +Notes | extended NuMI beam gate: 15 µs + +(when values in the table are the same as the previous column they are not repeated) + + +#### Processing information + +Processing by SBN Production: + +Item | Item information +------------------ | ---------------------------------------------------------------------------------- +Submission date | `2024-03-26` +Submitted by | Gianluca Petrillo +Submission ID | `ICARUSrun11813full`, `ICARUSrun11816full` +Description | ICARUS reference standard Run3 run 11813/11816 with all PMT waveforms +Software version | `icaruscode` `v09_87_00` +Output formats | _art_/ROOT `Stage1`, CAF (all), calibration tuples +Job configurations | `Stage0`: `stage0_run2_wc_icarus.fcl` +" | `Stage1`: `stage1_run2_larcv_icarus.fcl` +" | CAF: `cafmakerjob_icarus_data.fcl` +Input definitions | run `11813`: `petrillo_ICARUS_data_run11813_raw` (`979` files) +" | run `11816`: `petrillo_ICARUS_data_run11816_raw` (`1176` files) +Special requests | Stage1, calibration tuples and CAF files need to be persistently cached on disk +Production steward | Promita Roy + +This is a production performed with the official **`icaruscode` release `v09_87_00`**. + +Statistics: + +Run | `11813` | `11816` +-------------------------- | ----------- | ----------- +expected events | ≥`45840` | ≥`55534` +expected files | `967` | `1163` +events from SAM (`Stage1`) | `39683` | `39109` +duplicate files (`Stage1`) | `20` | `39` + +**Current issues**: +1. duplicate files declared to SAM (checked only `Stage1`) +2. samples for run 11816 BNB offbeam minimum bias stream are nowhere to be found (only that run and that stream) +3. we have 13% and 30% of events missing from the two samples (yikes!!) + + +#### Data retrieval + +The following sets are defined: + * format: `stage1`, `calibtuples`, `[flat]caf_(blind|unblind|prescaled)` (in Bash: `{stage1,calibtuples,{flat,}caf_{blind,unblind,prescaled}}`) + * stream: `[offbeam](bnb|numi)(minbias|majority)` (in Bash: `{,offbeam}{bnb,numi}{minbias,majority}`) + * RunNo: the run number (not padded) + +Data can be addressed by SAM definitions, and current data paths are reported here. +Persistent data paths are not available yet. + +##### SAM definitions + +Single pattern: `Icaruspro_2024_Run3_Run_OpRecWG__production_Data_OpticalReconstructionWG_Run3___v09_87_00__` + +Test: +```bash +declare -a Runs=( 11813 11816 ) +declare -a Streams=( {,offbeam}{bnb,numi}{minbias,majority} ) +declare -a Formats=( {stage1,calibtuples,{flat,}caf_{blind,unblind,prescaled}} ) +declare -i nDefinitions=0 +for RunNo in "${Runs[@]}" ; do + for Stream in "${Streams[@]}" ; do + for Format in "${Formats[@]}" ; do + SAMdefName="Icaruspro_2024_Run3_Run${RunNo}_OpRecWG_${Stream}_production_Data_OpticalReconstructionWG_Run3_${RunNo}_${Stream}_v09_87_00_${Stream}_${Format}" + samweb describe-definition "$SAMdefName" > /dev/null || continue + let ++nDefinitions + done + done +done +echo "${nDefinitions} definitions found (${#Runs[@]} runs x ${#Streams[@]} streams x ${#Formats[@]} formats = $(( ${#Runs[@]} * ${#Streams[@]} * ${#Formats[@]} )) expected)." +``` + +##### Data paths + +##### _art_/ROOT files + +Only available for `Stage1`. + +Pattern: `/pnfs/sbn/data_add/sbn_fd/poms_production/data/Data_OpticalReconstructionWG_Run3__/reconstructed/icaruscode_v09_87_00/Icaruspro_2024_Run3_Run_OpRecWG_///` + +Test: +```bash +declare -a Runs=( 11813 11816 ) +declare -a Streams=( {,offbeam}{bnb,numi}{minbias,majority} ) +declare -a Formats=( 'stage1' ) +declare -i nSamples=0 +for RunNo in "${Runs[@]}" ; do + for Stream in "${Streams[@]}" ; do + for Format in "${Formats[@]}" ; do + DataPath="/pnfs/sbn/data_add/sbn_fd/poms_production/data/Data_OpticalReconstructionWG_Run3_${RunNo}_${Stream}/reconstructed/icaruscode_v09_87_00/Icaruspro_2024_Run3_Run${RunNo}_OpRecWG_${Stream}/${Stream}/${Format}/" + NFiles="$(find "$DataPath" -name "*.root" | wc -l)" + [[ $NFiles -gt 0 ]] || continue + printf 'Run %5d data stream %-20s %-15s: %5d\n' "$RunNo" "$Stream" "$Format" "$NFiles" + let ++nSamples + done + done +done +echo "${nDefinitions} data paths (${#Runs[@]} runs x ${#Streams[@]} streams x ${#Formats[@]} formats = $(( ${#Runs[@]} * ${#Streams[@]} * ${#Formats[@]} )) expected)." +``` + +##### Simple trees (calibration tuple and CAF files) + +Pattern: `/pnfs/sbn/data/sbn_fd/poms_production/data/Data_OpticalReconstructionWG_Run3__/reconstructed/icaruscode_v09_87_00///` + +Test: +```bash +declare -a Runs=( 11813 11816 ) +declare -a Streams=( {,offbeam}{bnb,numi}{minbias,majority} ) +declare -a Formats=( {calibtuples,{flat,}caf_{blind,unblind,prescaled}} ) +declare -i nSamples=0 +for RunNo in "${Runs[@]}" ; do + for Stream in "${Streams[@]}" ; do + for Format in "${Formats[@]}" ; do + DataPath="/pnfs/sbn/data/sbn_fd/poms_production/data/Data_OpticalReconstructionWG_Run3_${RunNo}_${Stream}/reconstructed/icaruscode_v09_87_00/${Stream}/${Format}/" + NFiles="$(find "$DataPath" -name "*.root" | wc -l)" + [[ $NFiles -gt 0 ]] || continue + printf 'Run %5d data stream %-20s %-15s: %5d\n' "$RunNo" "$Stream" "$Format" "$NFiles" + let ++nSamples + done + done +done +echo "${nDefinitions} data paths (${#Runs[@]} runs x ${#Streams[@]} streams x ${#Formats[@]} formats = $(( ${#Runs[@]} * ${#Streams[@]} * ${#Formats[@]} )) expected)." +``` + From 439007e9de8cdca2ee677d19c8adbca3f1648e90 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Wed, 1 May 2024 17:03:03 -0700 Subject: [PATCH 0874/1437] Added note to opreco.md --- icaruscode_wiki/samples/opreco.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/icaruscode_wiki/samples/opreco.md b/icaruscode_wiki/samples/opreco.md index 29f53c58a..d48709818 100644 --- a/icaruscode_wiki/samples/opreco.md +++ b/icaruscode_wiki/samples/opreco.md @@ -17,15 +17,19 @@ Link to datasheet | [`11813`](https://docs.google.com/spreadsheets/d/1dQk0 Run period | Run3 Date | `2024-03-18 17:00` | `2024-03-20 14:17` Duration | `17:42:18` | `20:24:33` -NuMI repetition rate | 14/15 (0.933 Hz) -BNB repetition rate | 4× NuMI (3.733 Hz) -NuMI PoT/spill | 3.3·10¹³ (mode) | 3.7·10¹³ (mode) -BNB PoT/spill | 4.16·10¹² (mode) | 3.20·10¹² (mode) +NuMI repetition rate | 14/15 (0.933 Hz) (base) +BNB repetition rate | 4× NuMI (3.733 Hz) (base) +NuMI PoT/spill | 3.3 · 10¹³ (mode) | 3.7 · 10¹³ (mode) +BNB PoT/spill | 4.16 · 10¹² (mode) | 3.20 · 10¹² (mode) Events | ≥`45840` | ≥`55534` Trigger configuration | physics, majority only | physics standard Notes | extended NuMI beam gate: 15 µs -(when values in the table are the same as the previous column they are not repeated) +> [!NOTE] +> * When values in the table are the same as the previous column they are not repeated. +> * "Base" repetition rates: "nominal" and determined by the accelerator parameters, it does not include temporary configuration changes or dead times. +> * "Mode" beam intensity: where the main peak of intensity spill by spill is located; it does not include dead times. + #### Processing information From 88215c032e628cb6e52188167444ed1dd1f57eb8 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 6 May 2024 12:06:32 -0400 Subject: [PATCH 0875/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 854d8ce8b..2729ca131 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -23,7 +23,7 @@ More information about the workflow can be found at the [SBN Analysis Infrastruc How to access the samples -------------------------- -Our datasets are declared to the SBN SAM instance which is acessible to both SBND and ICARUS collaborators. All samweb commands should specify the SBN instance with `samweb -e sbn`, following are some useful commands: +MC sample datasets are declared to the SBN SAM instance which is acessible to both SBND and ICARUS collaborators. All samweb commands should specify the SBN instance with `samweb -e sbn`, following are some useful commands: ### Definition commands - checking definition files: `samweb -e sbn list-definition-files {definition}` @@ -376,13 +376,15 @@ Processed Data SBN Production Samples ICARUS DATA -------------------------- + +ICARUS Reconstructed DATA +-------------------------- + ### Notes on samples ### * Run 1 reprocessing is the reprocessing of selected runs based on the good run list created by Gray and Minerba. Please refer to this docdb for the list of runs: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=25407&filename=ICARUS%20Data%20Re-Processing.pdf&version=1 * Run 1 batch 2 is the processing of run_number > 7621 and run_number < 8460 (before the update to the new DAQ configuration) * Run 1 batch 3 is the processing of run_number >= 8460 and run_number < 8598 (after the update to the new DAQ configuration resulting in 8 new data stream: (offbeam) BNB/NuMI Majority/MinBias) - - | Sample Description | production push | release version | # Events | Sample type | Samweb definition | | --- | --- | --- | --- | --- | --- | | Offbeam NuMI MinBias stream | Run 1 batch3 | v09_37_02_09 | 374836 | stage0 | IcarusProd_Run1_batch3_OffBeamNuMIMinBiasstream_stage0 | @@ -417,3 +419,17 @@ ICARUS DATA | --- | --- | --- | 333097 | stage1 | IcarusProd_Run1_reprocess_NuMIstream_stage1 | | BNB stream | Run 1 reprocessing | v09_37_02_01 | 627484 | stage0 | IcarusProd_Run1_reprocess_BNBstream_stage0 | | --- | --- | --- | 627484 | stage1 | IcarusProd_Run1_reprocess_BNBstream_stage1 | + +ICARUS Compressed RAW DATA +-------------------------- + +| Run | datastream | SAM dataset | Files failed Compression | +| --- | --- | --- | --- | --- | --- | +| Run 2 | numiminbias | run2_compression_production_v09_82_02_01_numiminbias_compressed_data | numiminbias_run2_physics_9301_to_10097_recover | +| Run 2 | bnbminbias | run2_compression_production_v09_82_02_01_bnbminbias_compressed_data | nbnbminbias_run2_physics_9301_to_10097_recover | +| Run 2 | offbeamnumiminbias | run2_compression_production_v09_82_02_01_offbeamnumiminbias_compressed_data | offbeamnumiminbias_run2_physics_9301_to_10097_recover | +| Run 2 | offbeamnumimajority | run2_compression_production_v09_82_02_01_offbeamnumimajority_compressed_data | offbeamnumimajority_run2_physics_9301_to_10097_recover | +| Run 2 | numimajority | run2_compression_production_v09_82_02_01_numimajority_compressed_data | numimajority_run2_physics_9301_to_10097_recover | +| Run 2 | offbeambnbmajority | run2_compression_production_v09_82_02_01_offbeambnbmajority_compressed_data | offbeambnbmajority_run2_physics_9301_to_10097_recover | +| Run 2 | bnbmajority | run2_compression_production_v09_82_02_01_bnbmajority_compressed_data | bnbmajority_run2_physics_9301_to_10097_recover | +| Run 2 | offbeambnbminbias | run2_compression_production_v09_82_02_01_offbeambnbminbias_compressed_data | offbeambnbminbias_run2_physics_9301_to_10097_recover | From 0e54ab180e0a64bf793edf72e9290c3e203c62f7 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 6 May 2024 12:07:21 -0400 Subject: [PATCH 0876/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2729ca131..271f15f61 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -424,7 +424,7 @@ ICARUS Compressed RAW DATA -------------------------- | Run | datastream | SAM dataset | Files failed Compression | -| --- | --- | --- | --- | --- | --- | +| --- | --- | --- | --- | | Run 2 | numiminbias | run2_compression_production_v09_82_02_01_numiminbias_compressed_data | numiminbias_run2_physics_9301_to_10097_recover | | Run 2 | bnbminbias | run2_compression_production_v09_82_02_01_bnbminbias_compressed_data | nbnbminbias_run2_physics_9301_to_10097_recover | | Run 2 | offbeamnumiminbias | run2_compression_production_v09_82_02_01_offbeamnumiminbias_compressed_data | offbeamnumiminbias_run2_physics_9301_to_10097_recover | From 1f09e61bbb2f483f4c86aae9ce035ea38e863abc Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 6 May 2024 14:07:39 -0400 Subject: [PATCH 0877/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 271f15f61..683075077 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -370,13 +370,12 @@ ICARUS MC * bug in LArSoft can lead to issues where the best matching particle is non existent * more information: [DocDB:20894](https://sbn-docdb.fnal.gov/cgi-bin/private/ShowDocument?docid=20894) -Processed Data SBN Production Samples +Data SBN Production Samples -------------------------- ICARUS DATA -------------------------- - ICARUS Reconstructed DATA -------------------------- From 86cbebba8ef0218a127f9df48f19bcb138c08828 Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Thu, 9 May 2024 14:18:42 -0400 Subject: [PATCH 0878/1437] Create sbncode_v09_90_00.md --- .../Releases/sbncode_v09_90_00.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_90_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_90_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_90_00.md new file mode 100644 index 000000000..93616a514 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_90_00.md @@ -0,0 +1,39 @@ +--- +layout: page +title: sbncode_v09_90_00 +toc: true +--- + +sbncode_v09_90_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +09 May 2024 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_90_00) has been cut and distributed + +* sbncode (v09_90_00): + + Using (updated dependencies): + * larsoft v09_90_00 + * sbnobj v09_19_01 + * lardataobj v09_18_03 + * nusystematics v01_04_07 + + Includes: + * Update NearestWireID #461 bugfix "Fixed bug where out of bounds IDs set TPC and Plane info to bad values." + * last valid point for last segment validity #463 + +Extra info +--------------------------------------------------- From c9bceca8f78b050acc352817783c1b7e469681fc Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Thu, 9 May 2024 14:19:52 -0400 Subject: [PATCH 0879/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index dac9f71ef..e091a4f8e 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_90_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_90_00) `v09_89_01_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_89_01_01) `v09_89_01` | 'sbncode' weekly release|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_89_01) `v09_88_00_04` | 'sbncode' SBN2024A production patch|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_88_00_04) From 085ac069e3ff109324bf66b3693b494fa708a893 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Fri, 10 May 2024 10:03:57 -0400 Subject: [PATCH 0880/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 683075077..99289962b 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -418,17 +418,3 @@ ICARUS Reconstructed DATA | --- | --- | --- | 333097 | stage1 | IcarusProd_Run1_reprocess_NuMIstream_stage1 | | BNB stream | Run 1 reprocessing | v09_37_02_01 | 627484 | stage0 | IcarusProd_Run1_reprocess_BNBstream_stage0 | | --- | --- | --- | 627484 | stage1 | IcarusProd_Run1_reprocess_BNBstream_stage1 | - -ICARUS Compressed RAW DATA --------------------------- - -| Run | datastream | SAM dataset | Files failed Compression | -| --- | --- | --- | --- | -| Run 2 | numiminbias | run2_compression_production_v09_82_02_01_numiminbias_compressed_data | numiminbias_run2_physics_9301_to_10097_recover | -| Run 2 | bnbminbias | run2_compression_production_v09_82_02_01_bnbminbias_compressed_data | nbnbminbias_run2_physics_9301_to_10097_recover | -| Run 2 | offbeamnumiminbias | run2_compression_production_v09_82_02_01_offbeamnumiminbias_compressed_data | offbeamnumiminbias_run2_physics_9301_to_10097_recover | -| Run 2 | offbeamnumimajority | run2_compression_production_v09_82_02_01_offbeamnumimajority_compressed_data | offbeamnumimajority_run2_physics_9301_to_10097_recover | -| Run 2 | numimajority | run2_compression_production_v09_82_02_01_numimajority_compressed_data | numimajority_run2_physics_9301_to_10097_recover | -| Run 2 | offbeambnbmajority | run2_compression_production_v09_82_02_01_offbeambnbmajority_compressed_data | offbeambnbmajority_run2_physics_9301_to_10097_recover | -| Run 2 | bnbmajority | run2_compression_production_v09_82_02_01_bnbmajority_compressed_data | bnbmajority_run2_physics_9301_to_10097_recover | -| Run 2 | offbeambnbminbias | run2_compression_production_v09_82_02_01_offbeambnbminbias_compressed_data | offbeambnbminbias_run2_physics_9301_to_10097_recover | From 910ece69255a90a659318aa1b8a9b09476f17968 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Thu, 16 May 2024 13:02:10 -0500 Subject: [PATCH 0881/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 8fb22b203..f1903d1ff 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_90_00`. | Weekly release. | [Release Notes](ReleaseNotes099000.html) |`v09_88_01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes098901.html) |`v09_88_00_04`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09880004.html) |`v09_88_00_03`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09880003.html) From 3c7e9249aaee5ba735b678c76bd8e1451be40aad Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Thu, 16 May 2024 13:12:26 -0500 Subject: [PATCH 0882/1437] Create ReleaseNotes099000.md --- sbndcode_wiki/Releases/ReleaseNotes099000.md | 88 ++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes099000.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes099000.md b/sbndcode_wiki/Releases/ReleaseNotes099000.md new file mode 100644 index 000000000..1775f02b2 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes099000.md @@ -0,0 +1,88 @@ +--- +layout: page +title: ReleaseNotes099000 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.90.00 | 16 May 2024 | [ReleaseNotes](ReleaseNotes099000.html) | +| --- | --- | --- | + + + +sbndcode v09_90_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_90_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_90_00/sbndcode-v09_90_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* https://github.com/SBNSoftware/sbndcode/pull/463 - increase precision of timestamp calculation to 64 bits -- was 32 bits +* https://github.com/SBNSoftware/sbndcode/pull/464 - Add electronics monitoring plots. Save raw data in hdf5 format. +* https://github.com/SBNSoftware/sbndcode/pull/465 - CI usages update +* https://github.com/SBNSoftware/sbndcode/pull/466 - Trj digitalnoisechannelstatus may3 2024 +* https://github.com/SBNSoftware/sbndcode/pull/467 - Add analyzer for PDS MC/reco studies + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_90_00 +* larsoft v09_90_00 + +Supported qualifiers +--------------------------------------------------- +* e26:prof +* e26:debug + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2024-05-16 Brinden Carlson : Merge branch 'release/v09_90_00' +* 2024-05-16 Brinden Carlson : Updating dependencies to match larsoft v09_90_00 +* 2024-05-15 Francisco Javier Nicolás-Arnaldos : Merge pull request #467 from SBNSoftware/feature/fnicolas_pdsanalyzer +* 2024-05-15 Francisco Javier Nicolás-Arnaldos : Merge pull request #466 from SBNSoftware/trj_digitalnoisechannelstatus_may3_2024 +* 2024-05-14 Bear Carlson : Merge pull request #464 from yangtj207/feature/tjyang_omevd +* 2024-05-14 Bear Carlson : Merge branch 'develop' into feature/tjyang_omevd +* 2024-05-14 Bear Carlson : Merge pull request #463 from SBNSoftware/trj64bittimestamp_April29_2024 +* 2024-05-14 Bear Carlson : Merge branch 'develop' into trj64bittimestamp_April29_2024 +* 2024-05-07 Thomas Junk : tighter cuts -- try not to cut out EM showers +* 2024-05-07 Thomas Junk : Add in Joe Zennamo's idea of cutting on number of samples a certain distance from pedestal, both in raw digits and recob::wire +* 2024-05-07 Thomas Junk : make event prep method public so it can be called by modules and services +* 2024-05-07 Thomas Junk : shift around service definition macro calls +* 2024-05-05 Francisco Javier Nicolás-Arnaldos : Update README.md +* 2024-05-05 Francisco Javier Nicolás-Arnaldos : Update README.md +* 2024-05-05 Fran Nicolas : Update README +* 2024-05-05 Fran Nicolas : Add flash x variables +* 2024-05-05 Fran Nicolas : fix fhicls +* 2024-05-05 Fran Nicolas : install fhicl +* 2024-05-05 Fran Nicolas : Add PDS analyzer for MC and reco studies +* 2024-05-05 Francisco Javier Nicolás-Arnaldos : Merge pull request #465 from SBNSoftware/coackley_ci_usage_update_v09_88_01 +* 2024-05-03 Thomas Junk : Digital Noise channel status identifier service +* 2024-05-02 Rachel Coackley : update usages +* 2024-04-30 Tingjun Yang : Add electronics monitoring plots. Save raw data in hdf5 format. +* 2024-04-29 Thomas Junk : increase precision of timestamp calculation to 64 bits -- was 32 bits +* 2024-04-29 Francisco Javier Nicolás-Arnaldos : Merge pull request #461 from SBNSoftware/release/SBN2024A + +sbndutil +--------------------------------------------------- + +* 2024-05-16 Brinden Carlson : Merge tag 'v09_90_00' into develop +* 2024-05-16 Brinden Carlson : Merge branch 'release/v09_90_00' +* 2024-05-16 Brinden Carlson : Updating dependencies to match larsoft v09_90_00 +* 2024-05-15 Francisco Javier Nicolás-Arnaldos : Merge pull request #14 from yangtj207/feature/tjyang_create_raw_def +* 2024-04-29 Francisco Javier Nicolás-Arnaldos : Merge pull request #15 from SBNSoftware/release/SBN2024A +* 2024-04-29 Tingjun Yang : Add comment. +* 2024-04-12 Tingjun Yang : Add a script to create definitions of SBND raw data files per run. +* 2024-04-04 Fran Nicolas : Merge tag 'v09_88_00_02' into develop +* 2024-04-04 Fran Nicolas : Merge branch 'release/v09_88_00_02' From d4bad180ad8643dcc7726f11c25d6ab5d44d2579 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Tue, 21 May 2024 16:29:50 +0100 Subject: [PATCH 0883/1437] Create sbnd_calibration_database.md --- sbnd_calibration_database.md | 94 ++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sbnd_calibration_database.md diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md new file mode 100644 index 000000000..6ba79ae32 --- /dev/null +++ b/sbnd_calibration_database.md @@ -0,0 +1,94 @@ +# SBND Calibration Database + +Author: Marina Reggiani-Guzzo, PDRA at University of Edinburgh, mguzzo@ed.ac.uk + +Last update: 21 May 2024 + +Hi there, this document contains all the information you need to know about the SBND calibration database. Please contact the author if you find any wrong/outdated information on this page. + +**General comments** +- This page is under construction, this message will be removed when the displayed information is definite! +- If you are working on the SBND calibration, please check if the information for your calibration is listed below, otherwise please update [SBND Calibration Database Spreadsheet](https://docs.google.com/spreadsheets/d/1xbAhb6WnmxbwKxFc-4nnInjHdH8A50S6Zgh0mfZrSF4/edit#gid=217643219) + +## Folders + +### tpc_channelstatus +- Folder description: This folder contains wire-channel specific variable information +- Channel number: Represents "wire channel" +- Number of rows: 11,264 (one for each wire channel) +- URL with current values in Production Database: + +| Variable Name | Type | Description | Unit | +| ------------- | ---- | ----------- | ---- | +| status | integer | 0=Dead, 1=Alive, 2=Abnormal | N/A | +| eresponse_gain | real | Pre-amplifier response parameter (voltage ←→ charge) * | mV/fC | +| eresponse_timing | real | Pre-amplifier shaping time * | us | +| eresponse_k3 | real | 1st pole term in numerator * | N/A | +| eresponse_k4 | real | 2nd pole term in numerator * | N/A | +| eresponse_k5 | real | 1st pole term in denominator * | N/A | +| eresponse_k6 | real | 2nd pole term in denominator * | N/A | + + +\* More information on DocDB 35489 (slide 13). + +### tpc_globalconstants +- Folder description: This folder contains non-channel specific information +- Channel number: No meaning +- Number of rows: 1 +- URL with current values in Production Database: + +| Variable Name | Type | Description | Unit | +| ------------- | ---- | ----------- | ---- | +| field_response | text | | | +| sce | text | | | +| e_lifetime_cosmic_etpc | real | Electron lifetime measured with muons, East TPC | ms | +| e_lifetime_cosmic_etpc_err | real | Electron lifetime error measured with muons, East TPC | ms | +| e_lifetime_cosmic_wtpc | real | Electron lifetime measured with muons, West TPC | ms | +| e_lifetime_cosmic_wtpc_err | real | Electron lifetime error measured with muons, West TPC | ms | +| e_lifetime_prm_inline | real | Electron lifetime measured with long inline purity monitor * | ms | +| e_lifetime_prm_inline_err | real | Electron lifetime error measured with long inline purity monitor * | ms | +| e_lifetime_prm_short | real | Electron lifetime measured with cryostat short internal purity monitor * | ms | +| e_lifetime_prm_short_err | real | Electron lifetime error measured with cryostat short internal purity monitors * | ms | +| e_lifetime_prm_long | real | Electron lifetime measured with cryostat long internal purity monitors * | ms | +| e_lifetime_prm_long_err | real | Electron lifetime error measured with cryostat long internal purity monitors * | ms | +| egain_i1_wtpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Induction 1 plane, West TPC | ADC/e- | +| egain_i2_wtpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Induction 2 plane, West TPC | ADC/e- | +| egain_c_wtpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Collection plane, West TPC | ADC/e- | +| egain_i1_etpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Induction 1 plane, East TPC | ADC/e- | +| egain_i2_etpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Induction 2 plane, East TPC | ACD/e- | +| egain_c_etpc | real | Electronics gain measured with cosmic muons (assumes recombination value) for Collection plane, East TPC | ADC/e- | +| diffusion_l | real | Longitudinal diffusion constant | cm2/s | +| diffusion_t | real | Transverse diffusion constant | cm2/s | + +\* More information on DocDB 33432. + +### tpc_yz_correction +- Folder description: This folder contains the non-uniformity map for the YZ plane. The map is a 2D histogram of Y=4m and Z=5m with a bin width of 5 cm on both directions. Therefore 400/5=80 bins along Y direction, and 500/5=100 bins along Z direction +- Channel number: The channel number has no physical meaning. This table is better described by the bin number/edges for each entry +- Number of rows: 2 (2 TPCs) x 80 (bins along Y) x 100 (bins along Z) = 16,000 +- URL with current values in Production Database: + +| Variable Name | Type | Description | Unit | +| ------------- | ---- | ----------- | ---- | +| tpc | text | W = west TPC, E = east TPC | N/A | +| ybin | integer | Bin number in Y direction, from 0 to 79 | N/A | +| zbin | integer | Bin number in Z direction, from 0 to 99 | N/A | +| ylow | real | Low-edge bin position in Y direction | cm | +| yhigh | real | High-edge bin position in Y direction | cm | +| zlow | real | Low-edge bin position in Z direction | cm | +| zhigh | real | High-edge bin position in Z direction | cm | +| scale | real | Non-uniformity scale for a point on the YZ plane | N/A | + +### tpc_x_correction +- Folder description: This folder contains the non-uniformity map for the X direction. The map is a 1D histogram of X=4m with a bin width of 10 cm. Therefore 400/10=40 bins along X direction +- Channel number: The channel number has no physical meaning. This table is better described by the bin number/edges for each entry +- Number of rows: 2 (2 TPCs) x 40 (bins along X) = 80 +- URL with current values in Production Database: + +| Variable Name | Type | Description | Unit | +| ------------- | ---- | ----------- | ---- | +| tpc | text | W = west TPC, E = east TPC | N/A | +| xbin | integer | Bin number in X direction, from 0 to 79 | N/A | +| xlow | real | Low-edge bin position in X direction | cm | +| xhigh | real | High-edge bin position in X direction | cm | +| scale | real | Non-uniformity scale along X direction | N/A | From a3b8e6fdbcc305b31ee47669731dd2ad60ed0e8f Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Tue, 21 May 2024 17:59:47 +0100 Subject: [PATCH 0884/1437] Update sbnd_calibration_database.md --- sbnd_calibration_database.md | 50 ++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 6ba79ae32..5b238e534 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -10,8 +10,34 @@ Hi there, this document contains all the information you need to know about the - This page is under construction, this message will be removed when the displayed information is definite! - If you are working on the SBND calibration, please check if the information for your calibration is listed below, otherwise please update [SBND Calibration Database Spreadsheet](https://docs.google.com/spreadsheets/d/1xbAhb6WnmxbwKxFc-4nnInjHdH8A50S6Zgh0mfZrSF4/edit#gid=217643219) +## Databases + +There are two databases for SBND: **development database** and **production database**. The "development database" is an intermediate stage used to validate the values that will later on be uploaded to the "production database", which is the one accessed by analyser modules and simulations. That means that, every time the database needs to be updated (whether it is a value changing, or including/removing variables) it will be implemented in the "development database" first. The change should be validated by the person requesting the change, and once confirmed that everything looks ok, the changes will be pushed to the "production database". + +| Description | Name | +| ----------- | ---- | +| Development database | sbnd_calib_dev | +| Production database | | + +Each database is a set of multiple folders. Each folder contain the following 4 tables: +- **table_data**: contains information about channel number and all the desired columns + - **__iov_id**: automatically created. integer representing the number of uploads was done, starting from 1, it matches with iov_id in table_tag_iovs + - **channel**: automatically created. + - **variables**: list of variables included manually by us (find the list of these variables in [Folders](#folders)) +- **table_iovs**: contains information about the moment when the table was filled via the bin/write_data.py script + - **iov_id**: integer representing the number of uploads was done, starting from 1 + - **begin_time**: automatically filled when a table it uploaded to the database (format: YYYY-MM-DD HH:MM:SS) + - **active**: boolean variable indicating if table is active (flag=t) or deactive (flag=f) in the database +- **table_tags**: contains a description of the uploaded data, automatically filled via the bin/tag_data.py script + - **tag**: tag chosen by the user to refer to this entry, usually vXrY (eg. v1r1, v1r2) + - **created**: format YYYY-MM-DD HH:MM:SS + - **comments**: analougos to “commit” on GitHub, contains a brief description of the content in current version +- **table_tag_iovs**: contains information linking the tag variable in table_tags to the iov_id one in table_iovs + ## Folders +This section displays a list of the variables in the database, as well as their description and unit. + ### tpc_channelstatus - Folder description: This folder contains wire-channel specific variable information - Channel number: Represents "wire channel" @@ -92,3 +118,27 @@ Hi there, this document contains all the information you need to know about the | xlow | real | Low-edge bin position in X direction | cm | | xhigh | real | High-edge bin position in X direction | cm | | scale | real | Non-uniformity scale along X direction | N/A | + +## Managing the database + +In order to manage the database, we use codes inherited from Minerva: `/sbnd/data/users/mguzzo/calib_dbs/mnvcon_ups_6.6_modified`. So please go ahead and create a copy of this repository on your working area. This section will cover how to create and upload values to the database, how to check the values on the database, as well as the details you should pay attention to when updating the database. + +The first thing to do is to set up the environment to be able to run the necessary scripts from the folder above: +``` +ssh @sbndgpvm01.fnal.gov +cd /exp/sbnd/data/users//calib_dbs/mnvcon_ups_6.6_modified/ +source setup.sh +source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh +setup sbndcode v09_82_02_01 -q e26:prof +``` +Note that the scripts in the next steps do not seem to work for Python versions before `v3`. Just for the record, I am currently using `v3.9.13`. + +Managing the database consists of 3 steps: (1) create a table, (2) write table to database and (3) tag the latest update. Let's cover each step in details below. + +**Create a table** + +Important: This command should only be used once when you are creating the database for the first time. Otherwise it will create a new table and replace the existing one by the new empty one, and we do not usually want that. So be careful! +``` +python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand \ : \ : +``` +Please note that the variable name is in lower case, whilst the variable type is in capital case. From cfc3fe114b50c1a8467a027fb106ee75f5da6d22 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Tue, 21 May 2024 20:23:48 +0100 Subject: [PATCH 0885/1437] Testing colourful text --- sbnd_calibration_database.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 5b238e534..d95d29823 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -142,3 +142,6 @@ Important: This command should only be used once when you are creating the datab python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand \ : \ : ``` Please note that the variable name is in lower case, whilst the variable type is in capital case. + + +text From 054d9e58fbe69df05ba5f807ad662c47e7061898 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Wed, 22 May 2024 11:46:38 +0200 Subject: [PATCH 0886/1437] Update GPVM_migration.md --- GPVM_migration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GPVM_migration.md b/GPVM_migration.md index 5c51b744c..21f5b7c31 100644 --- a/GPVM_migration.md +++ b/GPVM_migration.md @@ -17,13 +17,13 @@ Computing set up test VMs and installed build nodes for users to get acquainted ICARUS: - icarusbuild02.fnal.gov -- icarusgpvm-test-al9.fnal.gov - icarusgpvm0[2-6].fnal.gov +- icarusgpvm-test-al9.fnal.gov (to be retired soon) SBND: - sbndbuild03.fnal.gov -- sbndgpvm-test-al9.fnal.gov - sbndgpvm0[2-4].fnal.gov +- sbndgpvm-test-al9.fnal.gov (to be retired soon) As part of the migration to EL9 build nodes that can't be upgraded to EL9 will be retired by June 30th. This will affect sbndbuild01/02 and icarusbuild01. From c2429030c6a3f2b8946714d3c0b83d7a5277d1ec Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Wed, 22 May 2024 13:51:33 +0100 Subject: [PATCH 0887/1437] Adding information about how to manage database --- sbnd_calibration_database.md | 333 ++++++++++++++++++++++++++++++++++- 1 file changed, 329 insertions(+), 4 deletions(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index d95d29823..952ad6118 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -135,13 +135,338 @@ Note that the scripts in the next steps do not seem to work for Python versions Managing the database consists of 3 steps: (1) create a table, (2) write table to database and (3) tag the latest update. Let's cover each step in details below. -**Create a table** +### Create schema in database -Important: This command should only be used once when you are creating the database for the first time. Otherwise it will create a new table and replace the existing one by the new empty one, and we do not usually want that. So be careful! +If you want to create a new schema in the database you can do it as follows: +``` +# access sbndgpvm01 +ssh @sbndgpvm01.fnal.gov + +# access gateway (if 'Permission Denied' ask William Badgett to add you to the sbnd .k5login file) +ssh -K sbnd@sbnd-gateway01.fnal.gov + +# log into the database (if 'Permission Denied' talk to Olga Vlasova) +psql -U -h cdpgsdev -p 5488 -d sbnteststand + +# once in the database, create the schema +SET ROLE sbnd_calib_dev; +CREATE SCHEMA IF NOT EXISTS sbnd_calib_dev; +``` + +At this point you can display the list of schemas: +``` +sbnteststand=> \dn + List of schemas + Name | Owner +----------------+---------------- + alarms_dev | badgett + calib_dev | calib_dev + csu_gizmo | postgres + dcs_alarm | ilepetic + dcs_archiver | dcs_admin + public | postgres + runcon | runcon + sbnd_calib_dev | sbnd_calib_dev <-------- see here the one created now + ucon_dev | ucon_admin +(9 rows) +``` +Your schema is now created. You can check that the schema is currently empty: +``` +sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; + table_name +------------ +(0 rows) +``` +The next sections will explain how to populate your schema. + +### Create a table + +In order to populate your schema, you should first create a table with the variables you want. The command to create a table is (Important: This command should only be used once when you are creating the database for the first time. Otherwise it will create a new table and replace the existing one by the new empty one, and we do not usually want that. So be careful!): ``` python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand \ : \ : ``` -Please note that the variable name is in lower case, whilst the variable type is in capital case. +Please note that the variable name is in lower case, whilst the variable type is in capital case. See below an example of the process of creating a table: +``` +sbndgpvm01$ python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand tpc_channelstatus_data \ wire_number:INTEGER \ flange:TEXT \ board:INTEGER \ localchannel:INTEGER \ status:INTEGER \ low:REAL \ high:REAL +time_type = t +Creating folder tpc_channelstatus_data in namespace sbnd_calib_dev with columns: + wire_number : INTEGER + flange : TEXT + board : INTEGER + localchannel : INTEGER + status : INTEGER + low : REAL + high : REAL +Will drop existing folder +timestamp without time zone + + create table tpc_channelstatus_data_iovs ( + iov_id bigserial primary key, + begin_time timestamp without time zone, + active boolean default 'true'); + create index tpc_channelstatus_data_iovs_begin_time_inx on tpc_channelstatus_data_iovs(begin_time); + + create table tpc_channelstatus_data_tags ( + tag text primary key, + created timestamp, + comments text + ); + + create table tpc_channelstatus_data_tag_iovs ( + tag text references tpc_channelstatus_data_tags(tag) on delete cascade, + iov_id bigint references tpc_channelstatus_data_iovs(iov_id) on delete cascade, + primary key (tag, iov_id) + ); + + create table tpc_channelstatus_data_data ( + __iov_id bigint references tpc_channelstatus_data_iovs(iov_id) on delete cascade, + channel bigint default 0, + wire_number INTEGER, flange TEXT, board INTEGER, localchannel INTEGER, status INTEGER, low REAL, high REAL, + primary key(__iov_id, channel)); +{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} +Folder created +``` +Output: +``` +sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; + table_name +--------------------------------- + tpc_channelstatus_data_data + tpc_channelstatus_data_iovs + tpc_channelstatus_data_tags + tpc_channelstatus_data_tag_iovs +(4 rows) +``` +As you can see, the script automatically creates the four tables described in [Folders](#folders). The recently created tables are empty: +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ +(0 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+------------+-------- +(0 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +-----+---------+---------- +(0 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +-----+-------- +(0 rows) +``` +See next section to understand how to fill the tables. + +### Write table to database + +In order to write valued on your tables, you should provide them as a `.csv` file. Take the following example (where the values have no physical meaning, it's just for example purposes): +``` +sbndgpvm01$ cat /sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv +0,0,EE01M,0,63,4,0.0,0.0 +1,1,EE01M,0,62,4,0.0,0.0 +2,2,EE01M,0,61,4,0.0,0.0 +3,3,EE01M,0,60,4,0.0,0.0 +``` +Where the columns represent `channel number`, `wire number`, `flange`, `board`, `localchannel`, `status`, `low`, `high` (which is `channel number` followed by the variables listed in the `python bin/create_table.py` command). +The following command writes the values from this file to the tables in the database: +``` +sbndgpvm01$ python bin/write_data.py -n sbnd_calib_dev -h cdpgsdev -p 5488 -U -w \/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv \1706793247 \sbnteststand tpc_channelstatus_data wire_number,flange,board,localchannel,status,low,high +opts = [('-n', 'sbnd_calib_dev'), ('-h', 'cdpgsdev'), ('-p', '5488'), ('-U', ''), ('-w', '')] +args = ['/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv', '1706793247', 'sbnteststand', 'tpc_channelstatus_data', 'wire_number,flange,board,localchannel,status,low,high'] +[write_data.py] t = 1706793247 +[write_data.py] tname = tpc_channelstatus_data +[write_data.py] columns = ['wire_number', 'flange', 'board', 'localchannel', 'status', 'low', 'high'] +{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} +``` +Note that the entry `\1706793247` is a Unix Timestamp. The output of this command is: +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(4 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 1 | 2024-02-01 07:14:07 | t +(1 row) +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +-----+---------+---------- +(0 rows) -text +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +-----+-------- +(0 rows) +``` +As you can see, the numerical values filled the table `tpc_channel_status_data_data`; the table `tpc_channelstatus_data_iovs` got filled with the timestamp relative to `iov_id=1` as well as the tag `active=t` indicating that the `iov_id=1` is currently active in the database, which means that the values with `__iov_id=1` are the ones that will be available when accessing the database. + +### Tag the table + +Similarly to the "commit" command in GitHub, it is possible to tag the uploads to the database, making it easier to identify what got changed/updated. To tag a table, use the following command: +``` +sbndgpvm01$ python bin/tag.py -h cdpgsdev -p 5488 -U -w -n sbnd_calib_dev -c "First commit" sbnteststand tpc_channelstatus_data "v1r1" +[tag.py] tag = v1r1 +[tag.py] comment = First commit +{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} +``` +The output of this command is: +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(4 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 1 | 2024-02-01 07:14:07 | t +(1 row) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +------+----------------------------+-------------- + v1r1 | 2024-02-02 05:58:54.588726 | First commit +(1 row) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +------+-------- + v1r1 | 1 +(1 row) +``` +As you can see, only tables `tpc_channelstatus_data_tags` and `tpc_channelstatus_data_tag_iovs` got affected. + +**Important**: Please keep in mind that the tag is linked to all **active** tables! Let me give you an example of what happens when we start updating the table. Ok, so if we run `bin/write_data.py` again, we are going to have the following output: +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 + 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(9 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 1 | 2024-02-01 07:14:07 | t + 2 | 2024-02-02 06:49:28 | t +(2 rows) +``` +Note that the new values simply got added at the bottom of the current table, however they are now linked to `__iov_id=2`. At this stage both `iov_id=1` and `iov_id=2` are set as `active=t`. So what happens if we tag this table as is? Well, +``` +sbndgpvm01$ python bin/tag.py -h cdpgsdev -p 5488 -U -w -n sbnd_calib_dev -c "Second commit" sbnteststand tpc_channelstatus_data "v1r2" +[tag.py] tag = v1r2 +[tag.py] comment = Second commit +{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} +``` +The output will be: +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +------+----------------------------+--------------- + v1r1 | 2024-02-02 05:58:54.588726 | First commit + v1r2 | 2024-02-02 06:50:18.531701 | Second commit +(3 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +------+-------- + v1r1 | 1 <---- from "First commit" + v1r2 | 1 <---- from "Second commit" linked to iov_id 1 and 2 + v1r2 | 2 <---- from "Second commit" linked to iov_id 1 and 2 +(3 rows) +``` +As you can see, if we now try to retrieve the table based on its `tag=v1r2` it will give us _all_ the entries relative to `__iov_id=1` and `__iov_id=2`. But this is not what we want because ideally each `tag` should be linked to a separate set of data. Therefore, to avoid the situation above, you should make sure to only have the desired `iov_id` (in `tpc_channelstatus_data_iov`) set as `active=t`, whilst the rest should be set to `active=f`. In order to de-activate the not desired `iov` before each tag, please run the command from inside the database: +``` +UPDATE sbnd_calib_dev.tpc_channelstatus_data_iovs SET active=false WHERE iov_id=1; +``` +See below how it looks like when we first de-activate the iovs and then tag the database: +``` +sbnteststand=> UPDATE sbnd_calib_dev.tpc_channelstatus_data_iovs SET active=false WHERE iov_id=1; +UPDATE 1 +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 2 | 2024-02-02 06:49:28 | t + 1 | 2024-02-01 07:14:07 | f +``` +from the sbndgpvm01: +``` +sbndgpvm01$ python bin/tag.py -h cdpgsdev -p 5488 -U -w -n sbnd_calib_dev -c "De-activating iovs 1" sbnteststand tpc_channelstatus_data "v1r3" +[tag.py] tag = v1r3 +[tag.py] comment = De-activating iovs 1 +{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 + 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(9 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 2 | 2024-02-02 06:49:28 | t + 1 | 2024-02-01 07:14:07 | f +(2 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +------+----------------------------+---------------------------- + v1r1 | 2024-02-02 05:58:54.588726 | First commit + v1r2 | 2024-02-02 06:50:18.531701 | Second commit + v1r3 | 2024-02-05 07:36:30.512834 | De-activating iovs 1 +(3 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +------+-------- + v1r1 | 1 + v1r2 | 1 + v1r2 | 2 + v1r3 | 2 <---- now this tag only contain the most recently added table, iov_id=2 +(4 rows) +``` + +### Selecting specific iovs + +If you want to select a specific `iovs`, first you should check under `_tags` which tag you want, and then under `_tag_iovs` which iovs it's associated with. +For instance, let's consider we want to see the most up-to-date table, where iovs 1 is deactivated (tag=v1r3), this is iov_id=2 so you can select it by running: +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data WHERE __iov_id=2; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(4 rows) +``` From 61698fc2bfda5fb973a26e5ce2d5ec6e2ea8a4a0 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Wed, 22 May 2024 14:31:11 +0100 Subject: [PATCH 0888/1437] Information about old versions --- sbnd_calibration_database.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 952ad6118..400a04877 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -119,6 +119,13 @@ This section displays a list of the variables in the database, as well as their | xhigh | real | High-edge bin position in X direction | cm | | scale | real | Non-uniformity scale along X direction | N/A | +## What happens when a variable does not exist in an older version of the database? + +In a scenario where a variable has to be added to the database later on, it has been decided that this variable will assume the value of `-999` for older version, and therefore should be defined manually by the user when doing analysis. For example, imagine that the first version of the database contains the variables `version1=['field_response','sce']`, but then a few months we learn that we should also include `diffusion`, so the second version of the database will contain the variables `version2=['field_response','sce','diffusion']`. So what happens when someone wants to perform an analysis with an older version of the database? It will lack the information about `diffusion` in this simple example. There are two possible solutions for this situation: +1. Either the latest value is assumed automatically, or +2. An "error/non-physical" value (such as `-999`) is set to the variable for older versions to indicate that the variable was not measured back then. +Option (1) is not ideal because the latest value might not be valid/true for an older version of the database, so we'd be risking making automated wrong assumptions. Option (2) is the one used for the SBND calibration database, which means that the analyser should make a decision of which value to use, and make sure that the assumptions taken are valid. + ## Managing the database In order to manage the database, we use codes inherited from Minerva: `/sbnd/data/users/mguzzo/calib_dbs/mnvcon_ups_6.6_modified`. So please go ahead and create a copy of this repository on your working area. This section will cover how to create and upload values to the database, how to check the values on the database, as well as the details you should pay attention to when updating the database. From 6afd1a71d5d22ba2ec7fe99049b5dfe98a38a798 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Wed, 22 May 2024 16:24:13 +0100 Subject: [PATCH 0889/1437] Update sbnd_calibration_database.md --- sbnd_calibration_database.md | 86 +++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 17 deletions(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 400a04877..b82cc7d1c 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -14,11 +14,6 @@ Hi there, this document contains all the information you need to know about the There are two databases for SBND: **development database** and **production database**. The "development database" is an intermediate stage used to validate the values that will later on be uploaded to the "production database", which is the one accessed by analyser modules and simulations. That means that, every time the database needs to be updated (whether it is a value changing, or including/removing variables) it will be implemented in the "development database" first. The change should be validated by the person requesting the change, and once confirmed that everything looks ok, the changes will be pushed to the "production database". -| Description | Name | -| ----------- | ---- | -| Development database | sbnd_calib_dev | -| Production database | | - Each database is a set of multiple folders. Each folder contain the following 4 tables: - **table_data**: contains information about channel number and all the desired columns - **__iov_id**: automatically created. integer representing the number of uploads was done, starting from 1, it matches with iov_id in table_tag_iovs @@ -128,7 +123,17 @@ Option (1) is not ideal because the latest value might not be valid/true for an ## Managing the database -In order to manage the database, we use codes inherited from Minerva: `/sbnd/data/users/mguzzo/calib_dbs/mnvcon_ups_6.6_modified`. So please go ahead and create a copy of this repository on your working area. This section will cover how to create and upload values to the database, how to check the values on the database, as well as the details you should pay attention to when updating the database. +Managing the database consists of 3 steps: +1. create tables +2. write table values to database +3. tag the latest update + +Let's cover each step in details below. + +This section uses the scripts from Minerva, so please clone the following repository: +``` +/sbnd/data/users/mguzzo/calib_dbs/mnvcon_ups_6.6_modified +``` The first thing to do is to set up the environment to be able to run the necessary scripts from the folder above: ``` @@ -138,11 +143,10 @@ source setup.sh source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh setup sbndcode v09_82_02_01 -q e26:prof ``` -Note that the scripts in the next steps do not seem to work for Python versions before `v3`. Just for the record, I am currently using `v3.9.13`. - -Managing the database consists of 3 steps: (1) create a table, (2) write table to database and (3) tag the latest update. Let's cover each step in details below. +Note that the scripts in the next steps do not seem to work for Python versions before `v3`. -### Create schema in database +
+How do I create a schema in the database? If you want to create a new schema in the database you can do it as follows: ``` @@ -184,17 +188,41 @@ sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_sche ------------ (0 rows) ``` -The next sections will explain how to populate your schema. +
+ +For the following steps you will need the following information +Please note that the variable name is in lower case, whilst the variable type is in capital case. The table below contains the information for the development/production databases: +| Description | Name (-n) | Port (-p) | Host (-h) | Database name (-db) | Reader (-R) | Writer (-W) | +| ----------- | --------- | --------- | --------- | ------------------- | ----------- | ----------- | +| Development Database | sbnd_calib_dev | 5488 | cdpgsdev | sbndteststand | sbnd_calib_writer | sbnd_calib_reader | +| Production Database | | 5456 | ifdb09 | sbnd_online_prd | | | + +Request password to the authors. ### Create a table In order to populate your schema, you should first create a table with the variables you want. The command to create a table is (Important: This command should only be used once when you are creating the database for the first time. Otherwise it will create a new table and replace the existing one by the new empty one, and we do not usually want that. So be careful!): ``` -python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand \ : \ : +python bin/create_table.py -c -t t -h -p -U -w -W -R -n \ : \ : ``` -Please note that the variable name is in lower case, whilst the variable type is in capital case. See below an example of the process of creating a table: + +
+ +Example of the process of creating a table + +From an empty schema: + +``` +sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; + table_name +------------ +(0 rows) ``` -sbndgpvm01$ python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand tpc_channelstatus_data \ wire_number:INTEGER \ flange:TEXT \ board:INTEGER \ localchannel:INTEGER \ status:INTEGER \ low:REAL \ high:REAL + +You can create the tables described in [Folders](#folders) as follows: + +``` +sbndgpvm01$ python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U mguzzo -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand tpc_channelstatus_data \ wire_number:INTEGER \ flange:TEXT \ board:INTEGER \ localchannel:INTEGER \ status:INTEGER \ low:REAL \ high:REAL time_type = t Creating folder tpc_channelstatus_data in namespace sbnd_calib_dev with columns: wire_number : INTEGER @@ -244,8 +272,10 @@ sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_sche tpc_channelstatus_data_tag_iovs (4 rows) ``` + As you can see, the script automatically creates the four tables described in [Folders](#folders). The recently created tables are empty: ``` + sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; __iov_id | channel | wire_number | flange | board | localchannel | status | low | high ----------+---------+-------------+--------+-------+--------------+--------+-----+------ @@ -266,11 +296,22 @@ sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; -----+-------- (0 rows) ``` -See next section to understand how to fill the tables. + +
### Write table to database -In order to write valued on your tables, you should provide them as a `.csv` file. Take the following example (where the values have no physical meaning, it's just for example purposes): +In order to write valued on your tables, you should provide them as a `.csv` file, and use the following command: +``` +python bin/write_data.py -n -h -p -U -w \ \ \ ,, +``` +Note that the entry `` is a Unix Timestamp. + +
+ +Example of the process of writing valued to a table + +Take the following example (where the values have no physical meaning, it's just for example purposes): ``` sbndgpvm01$ cat /sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv 0,0,EE01M,0,63,4,0.0,0.0 @@ -281,7 +322,7 @@ sbndgpvm01$ cat /sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_ Where the columns represent `channel number`, `wire number`, `flange`, `board`, `localchannel`, `status`, `low`, `high` (which is `channel number` followed by the variables listed in the `python bin/create_table.py` command). The following command writes the values from this file to the tables in the database: ``` -sbndgpvm01$ python bin/write_data.py -n sbnd_calib_dev -h cdpgsdev -p 5488 -U -w \/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv \1706793247 \sbnteststand tpc_channelstatus_data wire_number,flange,board,localchannel,status,low,high +sbndgpvm01$ python bin/write_data.py -n sbnd_calib_dev -h cdpgsdev -p 5488 -U mguzzo -w \/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv \1706793247 \sbnteststand tpc_channelstatus_data wire_number,flange,board,localchannel,status,low,high opts = [('-n', 'sbnd_calib_dev'), ('-h', 'cdpgsdev'), ('-p', '5488'), ('-U', ''), ('-w', '')] args = ['/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv', '1706793247', 'sbnteststand', 'tpc_channelstatus_data', 'wire_number,flange,board,localchannel,status,low,high'] [write_data.py] t = 1706793247 @@ -318,9 +359,19 @@ sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; ``` As you can see, the numerical values filled the table `tpc_channel_status_data_data`; the table `tpc_channelstatus_data_iovs` got filled with the timestamp relative to `iov_id=1` as well as the tag `active=t` indicating that the `iov_id=1` is currently active in the database, which means that the values with `__iov_id=1` are the ones that will be available when accessing the database. +
+ ### Tag the table Similarly to the "commit" command in GitHub, it is possible to tag the uploads to the database, making it easier to identify what got changed/updated. To tag a table, use the following command: +``` +sbndgpvm01$ python bin/tag.py -h -p -U -w -n -c "" "" +``` + +
+ +Example of the process of tagging a table + ``` sbndgpvm01$ python bin/tag.py -h cdpgsdev -p 5488 -U -w -n sbnd_calib_dev -c "First commit" sbnteststand tpc_channelstatus_data "v1r1" [tag.py] tag = v1r1 @@ -357,6 +408,7 @@ sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; (1 row) ``` As you can see, only tables `tpc_channelstatus_data_tags` and `tpc_channelstatus_data_tag_iovs` got affected. +
**Important**: Please keep in mind that the tag is linked to all **active** tables! Let me give you an example of what happens when we start updating the table. Ok, so if we run `bin/write_data.py` again, we are going to have the following output: ``` From 8b0cc46393fe3481eb03a8195b2a68be067a0f5e Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Wed, 22 May 2024 16:35:05 +0100 Subject: [PATCH 0890/1437] Create sbnd_calibration_database_instructions_how_to_manage.md --- sbnd_calibration_database_instructions_how_to_manage.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbnd_calibration_database_instructions_how_to_manage.md diff --git a/sbnd_calibration_database_instructions_how_to_manage.md b/sbnd_calibration_database_instructions_how_to_manage.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/sbnd_calibration_database_instructions_how_to_manage.md @@ -0,0 +1 @@ + From 232f3d6e6b55c50af244932d1643f0e331022e61 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Thu, 23 May 2024 11:42:30 +0100 Subject: [PATCH 0891/1437] Update sbnd_calibration_database.md --- sbnd_calibration_database.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index b82cc7d1c..b1586e80b 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -123,6 +123,8 @@ Option (1) is not ideal because the latest value might not be valid/true for an ## Managing the database +Please find a detailed tutorial on how to manage the database here: [How to manage your database?](sbnd_calibration_database_instructions_how_to_manage.md) + Managing the database consists of 3 steps: 1. create tables 2. write table values to database From c03ec146d91b141c9b9c771da2d2d7452aa03134 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Thu, 23 May 2024 11:46:09 +0100 Subject: [PATCH 0892/1437] Update sbnd_calibration_database.md --- sbnd_calibration_database.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index b1586e80b..20236b064 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -2,7 +2,7 @@ Author: Marina Reggiani-Guzzo, PDRA at University of Edinburgh, mguzzo@ed.ac.uk -Last update: 21 May 2024 +Last update: 23 May 2024 Hi there, this document contains all the information you need to know about the SBND calibration database. Please contact the author if you find any wrong/outdated information on this page. @@ -10,10 +10,12 @@ Hi there, this document contains all the information you need to know about the - This page is under construction, this message will be removed when the displayed information is definite! - If you are working on the SBND calibration, please check if the information for your calibration is listed below, otherwise please update [SBND Calibration Database Spreadsheet](https://docs.google.com/spreadsheets/d/1xbAhb6WnmxbwKxFc-4nnInjHdH8A50S6Zgh0mfZrSF4/edit#gid=217643219) -## Databases +# Databases There are two databases for SBND: **development database** and **production database**. The "development database" is an intermediate stage used to validate the values that will later on be uploaded to the "production database", which is the one accessed by analyser modules and simulations. That means that, every time the database needs to be updated (whether it is a value changing, or including/removing variables) it will be implemented in the "development database" first. The change should be validated by the person requesting the change, and once confirmed that everything looks ok, the changes will be pushed to the "production database". +# Folders + Each database is a set of multiple folders. Each folder contain the following 4 tables: - **table_data**: contains information about channel number and all the desired columns - **__iov_id**: automatically created. integer representing the number of uploads was done, starting from 1, it matches with iov_id in table_tag_iovs @@ -29,8 +31,6 @@ Each database is a set of multiple folders. Each folder contain the following 4 - **comments**: analougos to “commit” on GitHub, contains a brief description of the content in current version - **table_tag_iovs**: contains information linking the tag variable in table_tags to the iov_id one in table_iovs -## Folders - This section displays a list of the variables in the database, as well as their description and unit. ### tpc_channelstatus @@ -114,14 +114,14 @@ This section displays a list of the variables in the database, as well as their | xhigh | real | High-edge bin position in X direction | cm | | scale | real | Non-uniformity scale along X direction | N/A | -## What happens when a variable does not exist in an older version of the database? +### What happens when a variable does not exist in an older version of the database? In a scenario where a variable has to be added to the database later on, it has been decided that this variable will assume the value of `-999` for older version, and therefore should be defined manually by the user when doing analysis. For example, imagine that the first version of the database contains the variables `version1=['field_response','sce']`, but then a few months we learn that we should also include `diffusion`, so the second version of the database will contain the variables `version2=['field_response','sce','diffusion']`. So what happens when someone wants to perform an analysis with an older version of the database? It will lack the information about `diffusion` in this simple example. There are two possible solutions for this situation: 1. Either the latest value is assumed automatically, or 2. An "error/non-physical" value (such as `-999`) is set to the variable for older versions to indicate that the variable was not measured back then. Option (1) is not ideal because the latest value might not be valid/true for an older version of the database, so we'd be risking making automated wrong assumptions. Option (2) is the one used for the SBND calibration database, which means that the analyser should make a decision of which value to use, and make sure that the assumptions taken are valid. -## Managing the database +# Managing the database Please find a detailed tutorial on how to manage the database here: [How to manage your database?](sbnd_calibration_database_instructions_how_to_manage.md) From 8e434e4cec2144dbd7236978558935988332eb4f Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Thu, 23 May 2024 11:47:40 +0100 Subject: [PATCH 0893/1437] Update sbnd_calibration_database.md --- sbnd_calibration_database.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 20236b064..6dbafdaa2 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -20,7 +20,7 @@ Each database is a set of multiple folders. Each folder contain the following 4 - **table_data**: contains information about channel number and all the desired columns - **__iov_id**: automatically created. integer representing the number of uploads was done, starting from 1, it matches with iov_id in table_tag_iovs - **channel**: automatically created. - - **variables**: list of variables included manually by us (find the list of these variables in [Folders](#folders)) + - **variables**: list of variables included manually by us (find the list of these variables below) - **table_iovs**: contains information about the moment when the table was filled via the bin/write_data.py script - **iov_id**: integer representing the number of uploads was done, starting from 1 - **begin_time**: automatically filled when a table it uploaded to the database (format: YYYY-MM-DD HH:MM:SS) From 7148a367bb5fd3369abcedfc8a8c4e624e3e8e09 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Fri, 24 May 2024 16:25:35 +0100 Subject: [PATCH 0894/1437] Update sbnd_calibration_database_instructions_how_to_manage.md --- ...ion_database_instructions_how_to_manage.md | 420 ++++++++++++++++++ 1 file changed, 420 insertions(+) diff --git a/sbnd_calibration_database_instructions_how_to_manage.md b/sbnd_calibration_database_instructions_how_to_manage.md index 8b1378917..8adece54a 100644 --- a/sbnd_calibration_database_instructions_how_to_manage.md +++ b/sbnd_calibration_database_instructions_how_to_manage.md @@ -1 +1,421 @@ +**Author:** Marina Reggiani-Guzzo, PDRA at the University of Edinburgh (Last update: 24/May/2024) +Managing the database consists of 3 steps: + +1. Set up environment to be able to run the necessary scripts +2. Create a schema in the database +3. Create a table in the database +4. Write values to the table in the database +5. Evaluate which tables you want to include in the next tag +6. Tag the latest update + +This tutorial covers each of the steps described above. + +A few of the steps above use scripts inherited from Minerva, so please clone the following repository to your working area: +``` +exp/sbnd/data/users/mguzzo/calib_dbs/mnvcon_ups_6.6_modified +``` + +## Step 1 Set up environment + +The first thing to do is to set up the environment to be able to run the necessary scripts inherited from Minerva: +``` +ssh @sbndgpvm01.fnal.gov +cd /exp/sbnd/data/users//calib_dbs/mnvcon_ups_6.6_modified/ +source setup.sh +source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh +setup sbndcode v09_82_02_01 -q e26:prof +``` +Note that the scripts in the next steps do not seem to work for Python versions before `v3`. + +## Step 2 Create a schema in the database + +In case you want to create a new schema in the database, follow the steps below. However you will likely use an already existing schema, in this case you can simply skip this step. + +In order to create a schema in the database, you should first access the database as follows (I suggest that you do it on a separate terminal): + +``` +# access sbndgpvm01 +ssh @sbndgpvm01.fnal.gov + +# access gateway (if 'Permission Denied' ask William Badgett to add you to the sbnd .k5login file) +ssh -K sbnd@sbnd-gateway01.fnal.gov + +# log into the database (if 'Permission Denied' talk to Olga Vlasova) +psql -U -h -p -d +``` + +Find below the host/port/database values for accesing the development/production databases: + +| Description | Host (-h) | Port (-p) | Database name (-d) | +| ----------- | --------- | --------- | ------------------ | +| Development Database | cdpgsdev | 5488 | sbndteststand | +| Production Database | ifdb09 | 5456 | sbnd_online_prd | + +Once logged into the database, you can create a new schema by first setting its "role" and then creating it. Find below the commands used to create the schema for the "development database": + +``` +SET ROLE sbnd_calib_dev; +CREATE SCHEMA IF NOT EXISTS sbnd_calib_dev; +``` + +At this point you can display the list of schemas: + +``` +sbnteststand=> \dn + List of schemas + Name | Owner +----------------+---------------- + alarms_dev | badgett + calib_dev | calib_dev + csu_gizmo | postgres + dcs_alarm | ilepetic + dcs_archiver | dcs_admin + public | postgres + runcon | runcon + sbnd_calib_dev | sbnd_calib_dev <-------- see here the one created now + ucon_dev | ucon_admin +(9 rows) +``` + +Your schema is now created. The command below displays the list of tables within the schema, so you can see that the schema is currently empty: + +``` +sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; + table_name +------------ +(0 rows) +``` + +## Step 3 Create a table + +In order to populate your schema, you should first create a table with the variables you want. To do so we use the script `mnvcon_ups_6.6_modified/bin/write_data.py` that is automated to create all the default Fermilab tables, as described in [Folders](https://github.com/mrguzzo/SBNSoftware_copy.github.io/blob/master/sbnd_calibration_database.md#folders). + +**Important!!!** This command creates an empty table _even if the table already exists_, in this case it gets overritten! So be careful! If you only want to **update** an existing table, go directly to the next step! + +Ok, now that you've been warned, let's take a look at how to create a new/empty table, the command is: + +``` +python bin/create_table.py -c -t t -h -p -U -w -W -R -n \ : \ : +``` + +Note: remember to [set up the environment](#step-1-set-up-environment) first and to run the command above from the sbndgpvm01 machine (not the gateway). + +| Description | Password (-w) | Writer (-W) | Reader (-R) | Name (-n) | +| ----------- | ------------- | -- | -- | -- | +| Dev. Db. | Request pwd | sbnd_calib_writer | sbnd_calib_reader | sbnd_calib_dev | +| Prod. Db. | Request pwd | | | | + +### Example of the process of creating a table + +From an empty schema: + +``` +sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; + table_name +------------ +(0 rows) +``` + +You can create the tables described in [Folders](https://github.com/mrguzzo/SBNSoftware_copy.github.io/blob/master/sbnd_calibration_database.md#folders) as follows: + +``` +sbndgpvm01$ python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U mguzzo -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand tpc_channelstatus_data \ wire_number:INTEGER \ flange:TEXT \ board:INTEGER \ localchannel:INTEGER \ status:INTEGER \ low:REAL \ high:REAL +time_type = t +Creating folder tpc_channelstatus_data in namespace sbnd_calib_dev with columns: + wire_number : INTEGER + flange : TEXT + board : INTEGER + localchannel : INTEGER + status : INTEGER + low : REAL + high : REAL +Will drop existing folder +timestamp without time zone + + create table tpc_channelstatus_data_iovs ( + iov_id bigserial primary key, + begin_time timestamp without time zone, + active boolean default 'true'); + create index tpc_channelstatus_data_iovs_begin_time_inx on tpc_channelstatus_data_iovs(begin_time); + + create table tpc_channelstatus_data_tags ( + tag text primary key, + created timestamp, + comments text + ); + + create table tpc_channelstatus_data_tag_iovs ( + tag text references tpc_channelstatus_data_tags(tag) on delete cascade, + iov_id bigint references tpc_channelstatus_data_iovs(iov_id) on delete cascade, + primary key (tag, iov_id) + ); + + create table tpc_channelstatus_data_data ( + __iov_id bigint references tpc_channelstatus_data_iovs(iov_id) on delete cascade, + channel bigint default 0, + wire_number INTEGER, flange TEXT, board INTEGER, localchannel INTEGER, status INTEGER, low REAL, high REAL, + primary key(__iov_id, channel)); +{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} +Folder created +``` +And as a result the originally empty table will be populated with the following tables +``` +sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; + table_name +--------------------------------- + tpc_channelstatus_data_data + tpc_channelstatus_data_iovs + tpc_channelstatus_data_tags + tpc_channelstatus_data_tag_iovs +(4 rows) +``` +Whose content is: +``` + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ +(0 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+------------+-------- +(0 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +-----+---------+---------- +(0 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +-----+-------- +(0 rows) +``` +As mentioned above, the command `bin/create_table.py` simply creates the tables with the desired variables (in this example it is `wire_number`, `flange`, `board`, `localchannel`, `status`, `low` and `high`), however the tables are still empty (all of them have `0 rows` of entries). The next step will describe how to populate these tables. + +## Step 4 Populate tables + +This section describes how to populate the tables in your schema. Keep in mind that this process is also used if you want to **update** an already existing table, it will be more clear later in this section why this is the case, please bear with me! + +Likewise the previous section, we also use a script from `mnvcon_ups_6.6_modified` to populate the tables, so make sure you have correctly [set up the environment](#step-1-set-up-environment). The overall command is: + +``` +python bin/write_data.py -n -h -p -U -w \ \ \ ,, +``` + +Note that `` is a Unix Timestamp, and that ` \/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv \1706793247 \sbnteststand tpc_channelstatus_data wire_number,flange,board,localchannel,status,low,high +opts = [('-n', 'sbnd_calib_dev'), ('-h', 'cdpgsdev'), ('-p', '5488'), ('-U', 'mguzzo'), ('-w', '')] +args = ['/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv', '1706793247', 'sbnteststand', 'tpc_channelstatus_data', 'wire_number,flange,board,localchannel,status,low,high'] +[write_data.py] t = 1706793247 +[write_data.py] tname = tpc_channelstatus_data +[write_data.py] columns = ['wire_number', 'flange', 'board', 'localchannel', 'status', 'low', 'high'] +{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} +``` +The output of this command is: +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(4 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 1 | 2024-02-01 07:14:07 | t +(1 row) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +-----+---------+---------- +(0 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +-----+-------- +(0 rows) +``` +As you can see: +1. The numerical values filled the table `tpc_channel_status_data_data`, and got labelled as `__iov_id=1` since this is the first time the table is being populated +2. The table `tpc_channelstatus_data_iovs` got filled with the timestamp relative to `iov_id=1` as well as the tag `active=t` indicating that the `iov_id=1` is currently active in the database, which means that the values with `__iov_id=1` are the ones that will be available when accessing the database. + +Take a look what happens if you run the `bin/write_data.py` once again: + +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 + 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(9 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 1 | 2024-02-01 07:14:07 | t + 2 | 2024-02-02 06:49:28 | t +(2 rows) +``` + +See that the same values got added to the table (because we're still using the same csv file as input) right below the previous values, they are now associated to `iov_id=2` and both `iov_id=1 and 2` are `active=t`. So now you understand that the table will actually always contain all the information ever populated to it, however the accessible information is defined by which `iov_id` is set to active. + +## Step 5 Evaluate active tables + +The database has a structure where you can "tag" its versions so you can retrieve any specific configuration at any time (similar to the "commit" function in GitHub). Keep in mind that when you tag a version, it will include all the "active" `iov_id`. Therefore, before tagging any version, you should make sure that only the desired `iov_id` is set as `active=t`, the other ones should be set to `active=f` so they are not included in the tag you are about to create. You can switch the active status as: +``` +UPDATE . SET active=false WHERE iov_id=; +``` + +### Example of how to activate/de-activate tables + +See below how this command looks like, starting from a situation where all `iov_id` are set to `active=t` +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 1 | 2024-02-01 07:14:07 | t + 2 | 2024-02-02 06:49:28 | t +(2 rows) +``` +you can change the active status as follows: +``` +sbnteststand=> UPDATE sbnd_calib_dev.tpc_channelstatus_data_iovs SET active=false WHERE iov_id=1; +UPDATE 1 +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 2 | 2024-02-02 06:49:28 | t + 1 | 2024-02-01 07:14:07 | f +``` +Where now only `iov_id=2` is set as active. + +## Step 6 Tag a version + +Once you are happy with the list of active `iov_id`, you can tag the version by using the command: +``` +python bin/tag.py -h -p -U -w -n -c "" "" +``` + +### Example of tagging versions + +Let's see what happens when we tag a version with a single `iov_id` active, and then when there are multiple ones active. + +1. Only one active iov_id: first check which are the active uploads: + +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 2 | 2024-02-02 06:49:28 | t + 1 | 2024-02-01 07:14:07 | f +(2 rows) +``` +Now, from the sbndgpvm, tag this version: +``` +sbndgpvm01$ python bin/tag.py -h cdpgsdev -p 5488 -U -w -n sbnd_calib_dev -c "First commit" sbnteststand tpc_channelstatus_data "v1r1" +[tag.py] tag = v1r1 +[tag.py] comment = First commit +{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} +``` +and the output will be: +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 + 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(9 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 2 | 2024-02-02 06:49:28 | t + 1 | 2024-02-01 07:14:07 | f +(2 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +------+----------------------------+--------------- + v1r1 | 2024-02-02 05:58:54.588726 | First commit +(1 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +------+-------- + v1r1 | 2 +(1 rows) +``` + +2. However, if we had forgotten to de-activate `iov_id=1` before tagging, then the output would be: + +``` +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; + __iov_id | channel | wire_number | flange | board | localchannel | status | low | high +----------+---------+-------------+--------+-------+--------------+--------+-----+------ + 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 + 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 + 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 + 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 + 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 +(9 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; + iov_id | begin_time | active +--------+---------------------+-------- + 1 | 2024-02-01 07:14:07 | t + 2 | 2024-02-02 06:49:28 | t + +(2 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; + tag | created | comments +------+----------------------------+--------------- + v1r1 | 2024-02-02 05:58:54.588726 | First commit +(1 rows) + +sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; + tag | iov_id +------+-------- + v1r1 | 1 + v1r1 | 2 +(1 rows) +``` + +The last table `_tag_iovs` gives the list of active iov_id per tag. Ideally you want to have only one per tag! The reason is very simple: the LArSoft modules read the database from the top to the bottom. So imagine you have 4 channels, like in the example above. If your tag has more than one active `iov_id`, then your module will always read the values related to the oldest `iov_id`, instead of the newest one. From 7b967c75805b8617e45d4096fd31941815fce519 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Fri, 24 May 2024 16:27:42 +0100 Subject: [PATCH 0895/1437] Update sbnd_calibration_database.md --- sbnd_calibration_database.md | 407 ----------------------------------- 1 file changed, 407 deletions(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 6dbafdaa2..b4af8b43f 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -124,410 +124,3 @@ Option (1) is not ideal because the latest value might not be valid/true for an # Managing the database Please find a detailed tutorial on how to manage the database here: [How to manage your database?](sbnd_calibration_database_instructions_how_to_manage.md) - -Managing the database consists of 3 steps: -1. create tables -2. write table values to database -3. tag the latest update - -Let's cover each step in details below. - -This section uses the scripts from Minerva, so please clone the following repository: -``` -/sbnd/data/users/mguzzo/calib_dbs/mnvcon_ups_6.6_modified -``` - -The first thing to do is to set up the environment to be able to run the necessary scripts from the folder above: -``` -ssh @sbndgpvm01.fnal.gov -cd /exp/sbnd/data/users//calib_dbs/mnvcon_ups_6.6_modified/ -source setup.sh -source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh -setup sbndcode v09_82_02_01 -q e26:prof -``` -Note that the scripts in the next steps do not seem to work for Python versions before `v3`. - -
-How do I create a schema in the database? - -If you want to create a new schema in the database you can do it as follows: -``` -# access sbndgpvm01 -ssh @sbndgpvm01.fnal.gov - -# access gateway (if 'Permission Denied' ask William Badgett to add you to the sbnd .k5login file) -ssh -K sbnd@sbnd-gateway01.fnal.gov - -# log into the database (if 'Permission Denied' talk to Olga Vlasova) -psql -U -h cdpgsdev -p 5488 -d sbnteststand - -# once in the database, create the schema -SET ROLE sbnd_calib_dev; -CREATE SCHEMA IF NOT EXISTS sbnd_calib_dev; -``` - -At this point you can display the list of schemas: -``` -sbnteststand=> \dn - List of schemas - Name | Owner -----------------+---------------- - alarms_dev | badgett - calib_dev | calib_dev - csu_gizmo | postgres - dcs_alarm | ilepetic - dcs_archiver | dcs_admin - public | postgres - runcon | runcon - sbnd_calib_dev | sbnd_calib_dev <-------- see here the one created now - ucon_dev | ucon_admin -(9 rows) -``` -Your schema is now created. You can check that the schema is currently empty: -``` -sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; - table_name ------------- -(0 rows) -``` -
- -For the following steps you will need the following information -Please note that the variable name is in lower case, whilst the variable type is in capital case. The table below contains the information for the development/production databases: -| Description | Name (-n) | Port (-p) | Host (-h) | Database name (-db) | Reader (-R) | Writer (-W) | -| ----------- | --------- | --------- | --------- | ------------------- | ----------- | ----------- | -| Development Database | sbnd_calib_dev | 5488 | cdpgsdev | sbndteststand | sbnd_calib_writer | sbnd_calib_reader | -| Production Database | | 5456 | ifdb09 | sbnd_online_prd | | | - -Request password to the authors. - -### Create a table - -In order to populate your schema, you should first create a table with the variables you want. The command to create a table is (Important: This command should only be used once when you are creating the database for the first time. Otherwise it will create a new table and replace the existing one by the new empty one, and we do not usually want that. So be careful!): -``` -python bin/create_table.py -c -t t -h -p -U -w -W -R -n \ : \ : -``` - -
- -Example of the process of creating a table - -From an empty schema: - -``` -sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; - table_name ------------- -(0 rows) -``` - -You can create the tables described in [Folders](#folders) as follows: - -``` -sbndgpvm01$ python bin/create_table.py -c -t t -h cdpgsdev -p 5488 -U mguzzo -w -W sbnd_calib_writer -R sbnd_calib_reader -n sbnd_calib_dev sbnteststand tpc_channelstatus_data \ wire_number:INTEGER \ flange:TEXT \ board:INTEGER \ localchannel:INTEGER \ status:INTEGER \ low:REAL \ high:REAL -time_type = t -Creating folder tpc_channelstatus_data in namespace sbnd_calib_dev with columns: - wire_number : INTEGER - flange : TEXT - board : INTEGER - localchannel : INTEGER - status : INTEGER - low : REAL - high : REAL -Will drop existing folder -timestamp without time zone - - create table tpc_channelstatus_data_iovs ( - iov_id bigserial primary key, - begin_time timestamp without time zone, - active boolean default 'true'); - create index tpc_channelstatus_data_iovs_begin_time_inx on tpc_channelstatus_data_iovs(begin_time); - - create table tpc_channelstatus_data_tags ( - tag text primary key, - created timestamp, - comments text - ); - - create table tpc_channelstatus_data_tag_iovs ( - tag text references tpc_channelstatus_data_tags(tag) on delete cascade, - iov_id bigint references tpc_channelstatus_data_iovs(iov_id) on delete cascade, - primary key (tag, iov_id) - ); - - create table tpc_channelstatus_data_data ( - __iov_id bigint references tpc_channelstatus_data_iovs(iov_id) on delete cascade, - channel bigint default 0, - wire_number INTEGER, flange TEXT, board INTEGER, localchannel INTEGER, status INTEGER, low REAL, high REAL, - primary key(__iov_id, channel)); -{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} -Folder created -``` -Output: -``` -sbnteststand=> SELECT table_name FROM information_schema.tables WHERE table_schema='sbnd_calib_dev'; - table_name ---------------------------------- - tpc_channelstatus_data_data - tpc_channelstatus_data_iovs - tpc_channelstatus_data_tags - tpc_channelstatus_data_tag_iovs -(4 rows) -``` - -As you can see, the script automatically creates the four tables described in [Folders](#folders). The recently created tables are empty: -``` - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; - __iov_id | channel | wire_number | flange | board | localchannel | status | low | high -----------+---------+-------------+--------+-------+--------------+--------+-----+------ -(0 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; - iov_id | begin_time | active ---------+------------+-------- -(0 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; - tag | created | comments ------+---------+---------- -(0 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; - tag | iov_id ------+-------- -(0 rows) -``` - -
- -### Write table to database - -In order to write valued on your tables, you should provide them as a `.csv` file, and use the following command: -``` -python bin/write_data.py -n -h -p -U -w \ \ \ ,, -``` -Note that the entry `` is a Unix Timestamp. - -
- -Example of the process of writing valued to a table - -Take the following example (where the values have no physical meaning, it's just for example purposes): -``` -sbndgpvm01$ cat /sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv -0,0,EE01M,0,63,4,0.0,0.0 -1,1,EE01M,0,62,4,0.0,0.0 -2,2,EE01M,0,61,4,0.0,0.0 -3,3,EE01M,0,60,4,0.0,0.0 -``` -Where the columns represent `channel number`, `wire number`, `flange`, `board`, `localchannel`, `status`, `low`, `high` (which is `channel number` followed by the variables listed in the `python bin/create_table.py` command). -The following command writes the values from this file to the tables in the database: -``` -sbndgpvm01$ python bin/write_data.py -n sbnd_calib_dev -h cdpgsdev -p 5488 -U mguzzo -w \/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv \1706793247 \sbnteststand tpc_channelstatus_data wire_number,flange,board,localchannel,status,low,high -opts = [('-n', 'sbnd_calib_dev'), ('-h', 'cdpgsdev'), ('-p', '5488'), ('-U', ''), ('-w', '')] -args = ['/sbnd/data/users/mguzzo/calib_dbs/update_tpc_channelstatus_data_1706793247.csv', '1706793247', 'sbnteststand', 'tpc_channelstatus_data', 'wire_number,flange,board,localchannel,status,low,high'] -[write_data.py] t = 1706793247 -[write_data.py] tname = tpc_channelstatus_data -[write_data.py] columns = ['wire_number', 'flange', 'board', 'localchannel', 'status', 'low', 'high'] -{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} -``` -Note that the entry `\1706793247` is a Unix Timestamp. The output of this command is: -``` -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; - __iov_id | channel | wire_number | flange | board | localchannel | status | low | high -----------+---------+-------------+--------+-------+--------------+--------+-----+------ - 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 - 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 - 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 - 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 -(4 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; - iov_id | begin_time | active ---------+---------------------+-------- - 1 | 2024-02-01 07:14:07 | t -(1 row) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; - tag | created | comments ------+---------+---------- -(0 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; - tag | iov_id ------+-------- -(0 rows) -``` -As you can see, the numerical values filled the table `tpc_channel_status_data_data`; the table `tpc_channelstatus_data_iovs` got filled with the timestamp relative to `iov_id=1` as well as the tag `active=t` indicating that the `iov_id=1` is currently active in the database, which means that the values with `__iov_id=1` are the ones that will be available when accessing the database. - -
- -### Tag the table - -Similarly to the "commit" command in GitHub, it is possible to tag the uploads to the database, making it easier to identify what got changed/updated. To tag a table, use the following command: -``` -sbndgpvm01$ python bin/tag.py -h -p -U -w -n -c "" "" -``` - -
- -Example of the process of tagging a table - -``` -sbndgpvm01$ python bin/tag.py -h cdpgsdev -p 5488 -U -w -n sbnd_calib_dev -c "First commit" sbnteststand tpc_channelstatus_data "v1r1" -[tag.py] tag = v1r1 -[tag.py] comment = First commit -{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} -``` -The output of this command is: -``` -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; - __iov_id | channel | wire_number | flange | board | localchannel | status | low | high -----------+---------+-------------+--------+-------+--------------+--------+-----+------ - 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 - 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 - 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 - 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 -(4 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; - iov_id | begin_time | active ---------+---------------------+-------- - 1 | 2024-02-01 07:14:07 | t -(1 row) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; - tag | created | comments -------+----------------------------+-------------- - v1r1 | 2024-02-02 05:58:54.588726 | First commit -(1 row) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; - tag | iov_id -------+-------- - v1r1 | 1 -(1 row) -``` -As you can see, only tables `tpc_channelstatus_data_tags` and `tpc_channelstatus_data_tag_iovs` got affected. -
- -**Important**: Please keep in mind that the tag is linked to all **active** tables! Let me give you an example of what happens when we start updating the table. Ok, so if we run `bin/write_data.py` again, we are going to have the following output: -``` -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; - __iov_id | channel | wire_number | flange | board | localchannel | status | low | high -----------+---------+-------------+--------+-------+--------------+--------+-----+------ - 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 - 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 - 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 - 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 - 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 - 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 - 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 - 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 -(9 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; - iov_id | begin_time | active ---------+---------------------+-------- - 1 | 2024-02-01 07:14:07 | t - 2 | 2024-02-02 06:49:28 | t -(2 rows) -``` -Note that the new values simply got added at the bottom of the current table, however they are now linked to `__iov_id=2`. At this stage both `iov_id=1` and `iov_id=2` are set as `active=t`. So what happens if we tag this table as is? Well, -``` -sbndgpvm01$ python bin/tag.py -h cdpgsdev -p 5488 -U -w -n sbnd_calib_dev -c "Second commit" sbnteststand tpc_channelstatus_data "v1r2" -[tag.py] tag = v1r2 -[tag.py] comment = Second commit -{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} -``` -The output will be: -``` -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; - tag | created | comments -------+----------------------------+--------------- - v1r1 | 2024-02-02 05:58:54.588726 | First commit - v1r2 | 2024-02-02 06:50:18.531701 | Second commit -(3 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; - tag | iov_id -------+-------- - v1r1 | 1 <---- from "First commit" - v1r2 | 1 <---- from "Second commit" linked to iov_id 1 and 2 - v1r2 | 2 <---- from "Second commit" linked to iov_id 1 and 2 -(3 rows) -``` -As you can see, if we now try to retrieve the table based on its `tag=v1r2` it will give us _all_ the entries relative to `__iov_id=1` and `__iov_id=2`. But this is not what we want because ideally each `tag` should be linked to a separate set of data. Therefore, to avoid the situation above, you should make sure to only have the desired `iov_id` (in `tpc_channelstatus_data_iov`) set as `active=t`, whilst the rest should be set to `active=f`. In order to de-activate the not desired `iov` before each tag, please run the command from inside the database: -``` -UPDATE sbnd_calib_dev.tpc_channelstatus_data_iovs SET active=false WHERE iov_id=1; -``` -See below how it looks like when we first de-activate the iovs and then tag the database: -``` -sbnteststand=> UPDATE sbnd_calib_dev.tpc_channelstatus_data_iovs SET active=false WHERE iov_id=1; -UPDATE 1 -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; - iov_id | begin_time | active ---------+---------------------+-------- - 2 | 2024-02-02 06:49:28 | t - 1 | 2024-02-01 07:14:07 | f -``` -from the sbndgpvm01: -``` -sbndgpvm01$ python bin/tag.py -h cdpgsdev -p 5488 -U -w -n sbnd_calib_dev -c "De-activating iovs 1" sbnteststand tpc_channelstatus_data "v1r3" -[tag.py] tag = v1r3 -[tag.py] comment = De-activating iovs 1 -{'iov_id': 'bigint', 'begin_time': 'timestamp without time zone', 'active': 'boolean'} - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data; - __iov_id | channel | wire_number | flange | board | localchannel | status | low | high -----------+---------+-------------+--------+-------+--------------+--------+-----+------ - 1 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 - 1 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 - 1 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 - 1 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 - 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 - 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 - 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 - 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 -(9 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; - iov_id | begin_time | active ---------+---------------------+-------- - 2 | 2024-02-02 06:49:28 | t - 1 | 2024-02-01 07:14:07 | f -(2 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tags; - tag | created | comments -------+----------------------------+---------------------------- - v1r1 | 2024-02-02 05:58:54.588726 | First commit - v1r2 | 2024-02-02 06:50:18.531701 | Second commit - v1r3 | 2024-02-05 07:36:30.512834 | De-activating iovs 1 -(3 rows) - -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; - tag | iov_id -------+-------- - v1r1 | 1 - v1r2 | 1 - v1r2 | 2 - v1r3 | 2 <---- now this tag only contain the most recently added table, iov_id=2 -(4 rows) -``` - -### Selecting specific iovs - -If you want to select a specific `iovs`, first you should check under `_tags` which tag you want, and then under `_tag_iovs` which iovs it's associated with. -For instance, let's consider we want to see the most up-to-date table, where iovs 1 is deactivated (tag=v1r3), this is iov_id=2 so you can select it by running: -``` -sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_data WHERE __iov_id=2; - __iov_id | channel | wire_number | flange | board | localchannel | status | low | high -----------+---------+-------------+--------+-------+--------------+--------+-----+------ - 2 | 0 | 0 | EE01M | 0 | 63 | 4 | 0 | 0 - 2 | 1 | 1 | EE01M | 0 | 62 | 4 | 0 | 0 - 2 | 2 | 2 | EE01M | 0 | 61 | 4 | 0 | 0 - 2 | 3 | 3 | EE01M | 0 | 60 | 4 | 0 | 0 -(4 rows) -``` From 01b4d550a21f3bd81d16688fc98fa7503ebbbbde Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 28 May 2024 12:00:24 -0400 Subject: [PATCH 0896/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 69 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 99289962b..64d2bcf03 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -52,7 +52,7 @@ Monte Carlo official SBN Production Samples SBND MC -------------------------- -| Sample Description | production push | release version | # Events | Sample type | Samweb definition | +| Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | | BNB + Cosmics GiBUU | MC2023B | v09_75_03_02 | 102189 | reco1 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_gibuu_g4_wcsim_detsim_reco1_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_reco2_sbnd | @@ -187,8 +187,73 @@ SBND MC ICARUS MC -------------------------- -| Sample Description | production push | release version | # Events | Sample type | Samweb definition | +| Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| BNB nu only sample (CV) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_flatcaf | +| BNB nu only sample - TPC Signal shape variation (VAR1) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_flatcaf | +| BNB nu only sample - Middle Induction Minimal Transparency (VAR2) | MC2024A | v09_89_01_01 | 207729 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_flatcaf | +| BNB nu only sample - Middle Induction Minimal Transparency (VAR3) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_flatcaf | +| BNB nu only sample - Front Induction Increased Gain Variation (VAR4) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_flatcaf | +| BNB nu only sample - Front Induction Decreased Gain Variation (VAR5) | MC2024A | v09_89_01_01 | 203148 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_flatcaf | +| BNB nu only sample - PMT Quantum Efficiency Variation (VAR6) | MC2024A | v09_89_01_01 | 203284 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_flatcaf | +| BNB nu only sample - Recombination Model Variation (VAR7) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_flatcaf | +| BNB nu only sample - TPC Coherent Noise Increase Variation (VAR8) | MC2024A | v09_89_01_01 | 202614 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_flatcaf | +| BNB nu only sample - TPC Coherent Noise Decrease Variation (VAR9) | MC2024A | v09_89_01_01 | 202733 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_flatcaf | +| BNB nu only sample - TPC Intrinsic Noise Increase Variation (VAR10) | MC2024A | v09_89_01_01 | 202887 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_flatcaf | +| BNB nu only sample - TPC Intrinsic Noise Decrease Variation (VAR11) | MC2024A | v09_89_01_01 | 202568 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_flatcaf | +| BNB nu only sample - New Light Variation (VAR12) | MC2024A | v09_89_01_01 | 203282 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_flatcaf | | BNB + Intime Cosmics (2d deconvolution validation) | MC2024A | v09_83_01 | 24851 | calibtuple | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_calibtuple | | --- | --- | --- | --- | caf | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_flatcaf | From 338b135c261d4e9bbf039862ea1cdfebfd1c2aec Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Tue, 28 May 2024 19:35:10 +0200 Subject: [PATCH 0897/1437] Temporary comment a text block in opreco.md that could be causing wiki build issues --- icaruscode_wiki/samples/opreco.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/icaruscode_wiki/samples/opreco.md b/icaruscode_wiki/samples/opreco.md index d48709818..15a78dcd2 100644 --- a/icaruscode_wiki/samples/opreco.md +++ b/icaruscode_wiki/samples/opreco.md @@ -25,10 +25,12 @@ Events | ≥`45840` | ≥`55534` Trigger configuration | physics, majority only | physics standard Notes | extended NuMI beam gate: 15 µs + From 148d581ed40943f798da738edc24f01c5f23cbe5 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Tue, 28 May 2024 19:46:47 +0200 Subject: [PATCH 0898/1437] Revert to 439007e --- icaruscode_wiki/samples/opreco.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/icaruscode_wiki/samples/opreco.md b/icaruscode_wiki/samples/opreco.md index 15a78dcd2..d48709818 100644 --- a/icaruscode_wiki/samples/opreco.md +++ b/icaruscode_wiki/samples/opreco.md @@ -25,12 +25,10 @@ Events | ≥`45840` | ≥`55534` Trigger configuration | physics, majority only | physics standard Notes | extended NuMI beam gate: 15 µs - From d4bc6200c8dd97d9b8a8f19dc8769dfb5b177984 Mon Sep 17 00:00:00 2001 From: Tracy Usher Date: Tue, 28 May 2024 10:58:20 -0700 Subject: [PATCH 0899/1437] Update sample.md Adding a period simply to check ability to modify the page --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 64d2bcf03..2fe1c8cd4 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -432,7 +432,7 @@ ICARUS MC ### Notes on samples ### * MC2020A * SBND Intime Cosmic sample in MCP2020A (and possibly older productions) - * bug in LArSoft can lead to issues where the best matching particle is non existent + * bug in LArSoft can lead to issues where the best matching particle is non existent. * more information: [DocDB:20894](https://sbn-docdb.fnal.gov/cgi-bin/private/ShowDocument?docid=20894) Data SBN Production Samples From 39139cdc63e2b813983a6f5acd8e61d164e1e03b Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 28 May 2024 14:05:41 -0400 Subject: [PATCH 0900/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 60 -------------------------------------- 1 file changed, 60 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2fe1c8cd4..2639a4f03 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -194,66 +194,6 @@ ICARUS MC | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_flatcaf | -| BNB nu only sample - TPC Signal shape variation (VAR1) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_flatcaf | -| BNB nu only sample - Middle Induction Minimal Transparency (VAR2) | MC2024A | v09_89_01_01 | 207729 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_flatcaf | -| BNB nu only sample - Middle Induction Minimal Transparency (VAR3) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_flatcaf | -| BNB nu only sample - Front Induction Increased Gain Variation (VAR4) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_flatcaf | -| BNB nu only sample - Front Induction Decreased Gain Variation (VAR5) | MC2024A | v09_89_01_01 | 203148 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_flatcaf | -| BNB nu only sample - PMT Quantum Efficiency Variation (VAR6) | MC2024A | v09_89_01_01 | 203284 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_flatcaf | -| BNB nu only sample - Recombination Model Variation (VAR7) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_flatcaf | -| BNB nu only sample - TPC Coherent Noise Increase Variation (VAR8) | MC2024A | v09_89_01_01 | 202614 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_flatcaf | -| BNB nu only sample - TPC Coherent Noise Decrease Variation (VAR9) | MC2024A | v09_89_01_01 | 202733 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_flatcaf | -| BNB nu only sample - TPC Intrinsic Noise Increase Variation (VAR10) | MC2024A | v09_89_01_01 | 202887 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_flatcaf | -| BNB nu only sample - TPC Intrinsic Noise Decrease Variation (VAR11) | MC2024A | v09_89_01_01 | 202568 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_flatcaf | -| BNB nu only sample - New Light Variation (VAR12) | MC2024A | v09_89_01_01 | 203282 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_calibtuple | -| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_larcv | -| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_flatcaf | | BNB + Intime Cosmics (2d deconvolution validation) | MC2024A | v09_83_01 | 24851 | calibtuple | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_calibtuple | | --- | --- | --- | --- | caf | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_flatcaf | From b74c389a8bcab98cdff5182e6fadef2dd361842e Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 28 May 2024 14:21:56 -0400 Subject: [PATCH 0901/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2639a4f03..f4bd72ca7 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -189,7 +189,7 @@ ICARUS MC | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| BNB nu only sample (CV) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | +| TEST TEST TEST | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_caf | From 33d4628383ae7cbf7380025a122e1361048b18f0 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Tue, 28 May 2024 20:54:20 +0200 Subject: [PATCH 0902/1437] In _config.yml explictly require "jekyll" plugin --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index 7208cfb5d..a463b151d 100644 --- a/_config.yml +++ b/_config.yml @@ -8,6 +8,7 @@ baseurl: "" # the subpath of your site, e.g. /blog # favicon: /images/sbn_logo.jpg plugins: + - jekyll - jekyll-sitemap - jekyll-seo-tag - jekyll-github-metadata From 1741488afeb1893ade82fbe357914c67cbc3a6cf Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Tue, 28 May 2024 20:57:50 +0200 Subject: [PATCH 0903/1437] In _config.yml require jekyll@v4.3.3 plugin --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index a463b151d..cf3767089 100644 --- a/_config.yml +++ b/_config.yml @@ -8,7 +8,7 @@ baseurl: "" # the subpath of your site, e.g. /blog # favicon: /images/sbn_logo.jpg plugins: - - jekyll + - jekyll@v4.3.3 - jekyll-sitemap - jekyll-seo-tag - jekyll-github-metadata From 538e5c85cdf46eda667cbb2f35aae99430eab2a6 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Tue, 28 May 2024 21:04:18 +0200 Subject: [PATCH 0904/1437] In _config.yml force chrisrhymes/bulma-clean-theme@v0.14.0 --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index cf3767089..c91df5796 100644 --- a/_config.yml +++ b/_config.yml @@ -1,5 +1,5 @@ # theme: bulma-clean-theme -remote_theme: chrisrhymes/bulma-clean-theme +remote_theme: chrisrhymes/bulma-clean-theme@v0.14.0 title: SBN Software Wiki tagline: SBN Software Wiki From c36c725b16d5f11907d5a4b44ab583793394f7bd Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Tue, 28 May 2024 21:19:04 +0200 Subject: [PATCH 0905/1437] Update jekyll in _config.yml According to https://pages.github.com/versions/ it seems we can't use neither `jekyll@v4.3.3`nor latest chrisrhymes/bulma-clean-theme at the moment, so we need to force `chrisrhymes/bulma-clean-theme@v0.14.0` --- _config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/_config.yml b/_config.yml index c91df5796..2fe869200 100644 --- a/_config.yml +++ b/_config.yml @@ -8,7 +8,6 @@ baseurl: "" # the subpath of your site, e.g. /blog # favicon: /images/sbn_logo.jpg plugins: - - jekyll@v4.3.3 - jekyll-sitemap - jekyll-seo-tag - jekyll-github-metadata From f1c764f845e90ea4b780f3de98e743312efa9e33 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 29 May 2024 09:35:59 -0400 Subject: [PATCH 0906/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 75 +++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index f4bd72ca7..284a10a4d 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -189,11 +189,71 @@ ICARUS MC | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| TEST TEST TEST | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | +| BNB nu only sample (CV) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_flatcaf | +| BNB nu only sample - TPC Signal shape variation (VAR1) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_flatcaf | +| BNB nu only sample - Middle Induction Minimal Transparency (VAR2) | MC2024A | v09_89_01_01 | 207729 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_flatcaf | +| BNB nu only sample - Middle Induction Minimal Transparency (VAR3) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_flatcaf | +| BNB nu only sample - Front Induction Increased Gain Variation (VAR4) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_flatcaf | +| BNB nu only sample - Front Induction Decreased Gain Variation (VAR5) | MC2024A | v09_89_01_01 | 203148 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_flatcaf | +| BNB nu only sample - PMT Quantum Efficiency Variation (VAR6) | MC2024A | v09_89_01_01 | 203284 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_flatcaf | +| BNB nu only sample - Recombination Model Variation (VAR7) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_flatcaf | +| BNB nu only sample - TPC Coherent Noise Increase Variation (VAR8) | MC2024A | v09_89_01_01 | 202614 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_flatcaf | +| BNB nu only sample - TPC Coherent Noise Decrease Variation (VAR9) | MC2024A | v09_89_01_01 | 202733 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_flatcaf | +| BNB nu only sample - TPC Intrinsic Noise Increase Variation (VAR10) | MC2024A | v09_89_01_01 | 202887 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_flatcaf | +| BNB nu only sample - TPC Intrinsic Noise Decrease Variation (VAR11) | MC2024A | v09_89_01_01 | 202568 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_flatcaf | +| BNB nu only sample - New Light Variation (VAR12) | MC2024A | v09_89_01_01 | 203282 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_flatcaf | | BNB + Intime Cosmics (2d deconvolution validation) | MC2024A | v09_83_01 | 24851 | calibtuple | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_calibtuple | | --- | --- | --- | --- | caf | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_83_01_2024A_ICARUS_BNB_Intime_Cosmics_MC_2024_BNB_MC_flatcaf | @@ -423,3 +483,16 @@ ICARUS Reconstructed DATA | --- | --- | --- | 333097 | stage1 | IcarusProd_Run1_reprocess_NuMIstream_stage1 | | BNB stream | Run 1 reprocessing | v09_37_02_01 | 627484 | stage0 | IcarusProd_Run1_reprocess_BNBstream_stage0 | | --- | --- | --- | 627484 | stage1 | IcarusProd_Run1_reprocess_BNBstream_stage1 | + +ICARUS Compressed RAW DATA +-------------------------- +| Run | datastream | SAM dataset | Files failed Compression | +| --- | --- | --- | --- | +| Run 2 | numiminbias | run2_compression_production_v09_82_02_01_numiminbias_compressed_data | numiminbias_run2_physics_9301_to_10097_recover | +| Run 2 | bnbminbias | run2_compression_production_v09_82_02_01_bnbminbias_compressed_data | nbnbminbias_run2_physics_9301_to_10097_recover | +| Run 2 | offbeamnumiminbias | run2_compression_production_v09_82_02_01_offbeamnumiminbias_compressed_data | offbeamnumiminbias_run2_physics_9301_to_10097_recover | +| Run 2 | offbeamnumimajority | run2_compression_production_v09_82_02_01_offbeamnumimajority_compressed_data | offbeamnumimajority_run2_physics_9301_to_10097_recover | +| Run 2 | numimajority | run2_compression_production_v09_82_02_01_numimajority_compressed_data | numimajority_run2_physics_9301_to_10097_recover | +| Run 2 | offbeambnbmajority | run2_compression_production_v09_82_02_01_offbeambnbmajority_compressed_data | offbeambnbmajority_run2_physics_9301_to_10097_recover | +| Run 2 | bnbmajority | run2_compression_production_v09_82_02_01_bnbmajority_compressed_data | bnbmajority_run2_physics_9301_to_10097_recover | +| Run 2 | offbeambnbminbias | run2_compression_production_v09_82_02_01_offbeambnbminbias_compressed_data | offbeambnbminbias_run2_physics_9301_to_10097_recover | From 18c7c0b0498ac89e9a0ffd4e0a6070aee6e1a862 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 29 May 2024 11:54:58 -0400 Subject: [PATCH 0907/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 284a10a4d..7ee6f6d38 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -486,6 +486,7 @@ ICARUS Reconstructed DATA ICARUS Compressed RAW DATA -------------------------- + | Run | datastream | SAM dataset | Files failed Compression | | --- | --- | --- | --- | | Run 2 | numiminbias | run2_compression_production_v09_82_02_01_numiminbias_compressed_data | numiminbias_run2_physics_9301_to_10097_recover | From 934037d7af64a0476cb611e77689438809de3ec7 Mon Sep 17 00:00:00 2001 From: cerati Date: Wed, 29 May 2024 21:56:59 -0500 Subject: [PATCH 0908/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 7ee6f6d38..25bf4c4aa 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -277,8 +277,7 @@ ICARUS MC | --- | --- | --- | --- | calibtuple | icaruspro_hists_2023A_ICARUS_BNB_cosmics_reco2 | | --- | --- | --- | --- | caf | icaruspro_2023A_ICARUS_NuMI_MC_flatcaf_2023Mar10 | | --- | --- | --- | --- | flatcaf | icaruspro_2023A_ICARUS_NuMI_MC_flatcaf_2023Mar10 | -| NuMI Neutrino Mini Production | MC2023A | v09_68_00_01 | 74600 | reco2 | icaruspro_2023A_ICARUS_NuMI_MC_stage1_2023Mar10 | -| --- | --- | --- | --- | calibtuples | icaruspro_2023A_ICARUS_NuMI_MC_caf_2023Mar10 | +| NuMI Neutrino Mini Production | MC2023A | v09_68_00_01 | 74600 | calibtuples | icaruspro_2023A_ICARUS_NuMI_MC_caf_2023Mar10 | | --- | --- | --- | --- | caf | icaruspro_2023A_ICARUS_NuMI_MC_caf_2023Mar10 | | --- | --- | --- | --- | flatcaf | icaruspro_2023A_ICARUS_NuMI_MC_flatcaf_2023Mar10 | | NuMI in-time cosmics w/Overburden | MC2022A | v09_37_02_04 | 809054 | reco2 | IcarusProd_2022A_NUMI_in-time_Cosmics_withOverburden_v09_37_02_04_reco2 | From 817f704ec549d50b41bb26c9d8d8587b5d6c97bb Mon Sep 17 00:00:00 2001 From: cerati Date: Wed, 29 May 2024 22:12:26 -0500 Subject: [PATCH 0909/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 25bf4c4aa..223293f6f 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -266,9 +266,6 @@ ICARUS MC | --- | --- | --- | --- | caf | icaruspro_production_v09_72_00_03_2023A_ICARUS_NuMI_MC_intime_cosmics_pretuned_signal_shape_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_72_00_03_2023A_ICARUS_NuMI_MC_intime_cosmics_pretuned_signal_shape_flatcaf | | NuMI Neutrino MC Phase 1 | MC2023A | v09_72_00_03 | 586890 | reco2 | icaruspro_v09_72_00_03_2023A_ICARUS_NuMI_MC_Nu_Phase1_sample_pretuned_signal_shape_stage1 | -| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_72_00_03_2023A_ICARUS_NuMI_MC_Nu_Phase1_sample_pretuned_signal_shape_calibtuple | -| --- | --- | --- | --- | caf | icaruspro_production_v09_72_00_03_2023A_ICARUS_NuMI_MC_Nu_Phase1_sample_pretuned_signal_shape_caf | -| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_72_00_03_2023A_ICARUS_NuMI_MC_Nu_Phase1_sample_pretuned_signal_shape_flatcaf | | ICARUS BNB Mini Production intime cosmics | MC2023A | v09_72_00_01 | 90093 | reco2 | icaruspro_2023A_ICARUS_BNB_cosmics_reco2 | | --- | --- | --- | --- | calibtuple | icaruspro_hists_2023A_ICARUS_BNB_cosmics_reco2 | | --- | --- | --- | --- | caf | icaruspro_2023A_ICARUS_BNB_cosmics_caf | From 03a9c1d3f2baead7dc90d48dfce37379d7ae1901 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Thu, 30 May 2024 10:54:37 -0400 Subject: [PATCH 0910/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 223293f6f..297a93a67 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -187,6 +187,8 @@ SBND MC ICARUS MC -------------------------- +icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_ + | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | | BNB nu only sample (CV) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | @@ -194,6 +196,11 @@ ICARUS MC | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_flatcaf | +| BNB nu only sample - null variation (VAR0) | MC2024A | v09_89_01_01 | 203320 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_calibtuple | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_larcv | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_flatcaf | | BNB nu only sample - TPC Signal shape variation (VAR1) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_larcv | From 45cec0e4744ec7a8a77c794e1ac2198b22f50805 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 5 Jun 2024 10:30:05 -0500 Subject: [PATCH 0911/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index e091a4f8e..8c583cf08 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_72_00_07` | 'sbncode' SBN2023A 'NuMI' production patch|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07) `v09_90_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_90_00) `v09_89_01_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_89_01_01) `v09_89_01` | 'sbncode' weekly release|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_89_01) From 712fc96e4aab54fc8aa8733caa1973c010d8b1a1 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 5 Jun 2024 10:45:42 -0500 Subject: [PATCH 0912/1437] Create sbncode_v09_72_00_07.md --- .../Releases/sbncode_v09_72_00_07.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07.md new file mode 100644 index 000000000..83051b1aa --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07.md @@ -0,0 +1,50 @@ +--- +layout: page +title: sbncode_v09_88_00_04 +toc: true +--- + +sbncode_v09_72_00_07 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +5 June 2024 + +Purpose +--------------------------------------------------- +* SBN2023A (NuMI) production patch + +New features +--------------------------------------------------- +A new production patch of sbncode SBN2023A 'NuMI branch' (v09_72_00_07) has been cut and distributed + +* sbncode (v09_72_00_07): + + Using: + * larsoft v09_72_00_01 + * sbnobj v09_16_00_03 + * sbnanaobj 09_20_06_04 + + Includes: + * SBNSoftware/sbncode Update Calibration of MCS for ICARUS #439 + * SBNSoftware/sbncode Saving non-primaries in cafs for g4 study [release/SBN2023A_NuMI] #429 + * SBNSoftware/sbncode Feature/howard for numi2023a from gputnam configs #431 + * SBNSoftware/sbncode Feature/howard spillquality numi analysis #425 + * SBNSoftware/sbncode Add scatter angles in MCS to StandardRecord #438 + * SBNSoftware/sbncode Update NuMI flux file location for MeVPrtl. Update a couple HPS configs.#437 + * SBNSoftware/sbncode Saving GENIE tree to caf [release/SBN2023A_NuMI] #426 + * SBNSoftware/sbnobj Add true trajectory points to truth information#105 + * SBNSoftware/sbnanaobj Fixing what to be installed for Flat [release/SBN2023A_NuMI]#125 + * SBNSoftware/sbnanaobj howard spillquality numiAnalysis#123 + * SBNSoftware/sbnanaobj Adding GENIE Tree index to SRTrueInteraction [release/SBN2023A_NuMI_2]#124 + * SBNSoftware/sbnanaobj Add more info to SRTrigger.#126 + * SBNSoftware/sbnanaobj Save scatters in MCS object.#127 + +Extra info +--------------------------------------------------- +NuMI 2024 analysis, especially the CC0Pi cross-section analysis, off the 2023A production patch to reprocess reconstruction and CAF files with. From a6ce487e8091835560fb0de11152e7725ab5e7f5 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 5 Jun 2024 10:46:24 -0500 Subject: [PATCH 0913/1437] Update sbncode_v09_72_00_07.md --- .../ReleaseManagement/Releases/sbncode_v09_72_00_07.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07.md index 83051b1aa..93a56e76d 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07.md @@ -1,6 +1,6 @@ --- layout: page -title: sbncode_v09_88_00_04 +title: sbncode_v09_72_00_07 toc: true --- From 745ee5464a2d9d94397a4afad8fa8a62a195876f Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Thu, 27 Jun 2024 16:10:09 -0500 Subject: [PATCH 0914/1437] Update Viewing_events_remotely_with_VNC.md --- .../Viewing_events_remotely_with_VNC.md | 63 ++++++++++++------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md index 7f5dec893..8ed84fc62 100644 --- a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md +++ b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md @@ -35,20 +35,36 @@ instructions: On your chosen sbndgpvm (i.e. ssh to it) ------------------------------------------------------------------------------------------------ +⚠️ NOTE: If you need to use a SL7 dev container, the VNC server should be started from the EL9 machine, +then from the SL7 dev container you can do your work. + Firstly, check whether your chosen VNC server number is available. Run the following on the command line (change the 22 to the number you picked - **do not forget the -localhost option. If you do, then your VNC session will be automatically killed by a cron job set up to detect -these.):**\ +these.):** vncserver :22 -localhost -bs -\ It will tell you if the VNC server already exists; pick a different number in that case and test again. If the specific server does not exist then it will be created (it may ask you to pick a password, remember it for later). +To check your already runing VNC server(s) on the machine you can run: + + vncserver -list + +To kill a tunning VNC server on the machine you can run: + + vncserver -kill :N + +where `N` is the number associated to your VNC server. + +⚠️ NOTE: on EL9 VNC server is sourcing your `~/.profile`, so if there is anything that could cause a loop, +consider to amend your `~/.profile` or your VNC will hung indefinitely. + + On your local machine (i.e. open a new terminal window and do not ssh anywhere) @@ -95,7 +111,7 @@ following ssh command connects me to sbndgpvm01\ ssh -Y sbndgpvm01 -\ + Secondly, and more importantly, it automatically forwards the remote port used by the VNC server on the sbndgpvm to a specific port (5901 in the example above - you do not need to change this number) on your local @@ -108,30 +124,30 @@ machine. How to use your VNC server ------------------------------------------------------------------------ -ssh to your chosen dunegpvm using its new shortened name e.g.\ +ssh to your chosen dunegpvm using its new shortened name e.g. ssh sbndgpvm01 -\ + The ssh connection should automatically handle the port forwarding for -you in the background. Now fire up root and open a TBrowser as a test.\ +you in the background. Now fire up root and open a TBrowser as a test. source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh setup root v6_18_04d -q e19:prof root -\ + and once the root prompt appears\ new TBrowser On your local machine (open a new terminal window and do not ssh anywhere), open your vnc viewer software and point it towards -localhost:5901. On a mac, the command is:\ +localhost:5901. On a mac, the command is: open vnc://localhost:5901 -\ + If you set a password when originally creating the VNC server on the sbndgpvm, you will be prompted for it. Hopefully you now see the TBrowser. @@ -163,25 +179,25 @@ Old (ancient) instructions 1. [Setup your directory](How_to_setup_your_directory_and_launch_your_first_job.html). -2. Go to your data area and create an area for this work.\ +2. Go to your data area and create an area for this work. cd /sbnd/data/users/< username >/ mkdir workspace cd workspace -3. Generate 10 single muon events.\ +3. Generate 10 single muon events. lar -c prodsingle_sbnd.fcl -n 10 -4. Run GEANT4 on the output (\... = \"Tab\").\ +4. Run GEANT4 on the output (\... = \"Tab\"). lar -c standard_g4_sbnd.fcl -s prodsingle... -5. Run the detector simulation on the output.\ +5. Run the detector simulation on the output. lar -c standard_detsim_sbnd.fcl -s prodsingle..._... -6. Run the reconstruction on the output.\ +6. Run the reconstruction on the output. lar -c standard_reco_sbnd_basic.fcl -s prodsingle..._..._... @@ -197,36 +213,37 @@ slow, using a VNC server speeds things up significantly. terminal on your local machine. 2. **Terminal 1**: Start the VNC server (replace X with a number, must - be different for everyone working on the same gpvm).\ + be different for everyone working on the same gpvm). vncserver :X -localhost 3. **Terminal 1**: Choose a password. 4. **Terminal 1**: Push the output of a remote terminal to the VNC - desktop.\ + desktop. export DISPLAY=localhost:X 5. **Terminal 2**: Tunnel the VNC through ssh to keep it encrypted (if - X\<10 add a zero to the front).\ + X\<10 add a zero to the front). - ssh -L 59X:localhost:59X -N -f -l < username > < gpvmaddress > # e.g. ssh -L 5908:localhost:5908 -N -f -l tbrooks sbndgpvm01.fnal.gov # + ssh -L 59X:localhost:59X -N -f -l < username > < gpvmaddress > + # e.g. ssh -L 5908:localhost:5908 -N -f -l tbrooks sbndgpvm01.fnal.gov # -6. **Terminal 2**: Open the window locally. - - On mac the command is.\ +7. **Terminal 2**: Open the window locally. + - On mac the command is. open vnc://localhost:59X - On linux/ubuntu we will use vinagre but you might need to - download it first.\ + download it first. sudo apt-get install vinagre vinagre vnc://localhost:59X - A desktop window should open up. -7. **Terminal 1**: Open the event display.\ +8. **Terminal 1**: Open the event display. lar -c evd_sbnd.fcl prodsingle..._..._..._... From 8caeb8be5dde4142b13d9f7ba71a0e6193996962 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Thu, 27 Jun 2024 17:22:28 -0500 Subject: [PATCH 0915/1437] Update Viewing_events_remotely_with_VNC.md --- sbndcode_wiki/Viewing_events_remotely_with_VNC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md index 8ed84fc62..3f42c17ba 100644 --- a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md +++ b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md @@ -62,7 +62,7 @@ To kill a tunning VNC server on the machine you can run: where `N` is the number associated to your VNC server. ⚠️ NOTE: on EL9 VNC server is sourcing your `~/.profile`, so if there is anything that could cause a loop, -consider to amend your `~/.profile` or your VNC will hung indefinitely. +consider to amend your `~/.profile` (or temporarily rename it) otherwise your VNC could hung indefinitely. sbnd + + SL7 + 1000 @@ -112,7 +115,8 @@ Next is the project element. - `numevents` is the total number of events you want to produce in the sample and **NOT** the number of events per job. - `resource` specify the job resources and how the jobs are queued. Default is "DEDICATED,OPPORTUNISTIC". -- Line 22 defines how the jobs are queued. +- `os` specifies the operating system to be picked (in container form) for the job; at time of writing, LArSoft (`v09_90_00`) supports only SL7. +- Line 25 defines how the jobs are queued. The Larsoft sub element: From f25443e86dcbc6468fa552066cc91631bc4614fb Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Mon, 9 Sep 2024 09:42:10 -0500 Subject: [PATCH 0952/1437] Create ReleaseNotes09910201.html --- .../Releases/ReleaseNotes09910201.html | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09910201.html diff --git a/sbndcode_wiki/Releases/ReleaseNotes09910201.html b/sbndcode_wiki/Releases/ReleaseNotes09910201.html new file mode 100644 index 000000000..5541f95ac --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09910201.html @@ -0,0 +1,147 @@ +--- +layout: page +title: ReleaseNotes09910201 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.91.02.01 | 09 Sep 2024 | [ReleaseNotes](ReleaseNotes09910201.html) | +| --- | --- | --- | + + + +sbndcode v09_91_02_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_91_02_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_91_02_01/sbndcode-v09_91_02_01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2024-09-09 Brinden Carlson : Merge branch 'release/v09_91_02_01' +* 2024-09-09 Brinden Carlson : Version v09_91_02_01, patch release for SBN2024A +* 2024-09-09 Bear Carlson : Merge pull request #511 from SBNSoftware/feature/ebelchio12_wirecell_nfsp_calo +* 2024-09-09 Bear Carlson : Merge branch 'develop' into feature/ebelchio12_wirecell_nfsp_calo +* 2024-09-06 Bear Carlson : Merge pull request #497 from SBNSoftware/feature/ebelchio12_wirecell_nfsp_v2 +* 2024-09-06 Bear Carlson : Merge branch 'develop' into feature/ebelchio12_wirecell_nfsp_v2 +* 2024-09-06 Bear Carlson : Merge pull request #499 from SBNSoftware/feature/lkashur_crt_colwires_gdml_fix +* 2024-09-06 Bear Carlson : Merge branch 'develop' into feature/lkashur_crt_colwires_gdml_fix +* 2024-09-06 Bear Carlson : Merge pull request #513 from SBNSoftware/feature/munjung-choppy_streams +* 2024-09-06 Bear Carlson : Merge branch 'develop' into feature/munjung-choppy_streams +* 2024-09-06 Sungbin Oh : Merge branch 'develop' into feature/ebelchio12_wirecell_nfsp_calo +* 2024-09-06 sungbinoh : sync calorimetry_sbnd.fcl +* 2024-09-06 sungbinoh : Prepare PR to dev +* 2024-09-06 sungbinoh : To resolve conflict +* 2024-09-06 Bear Carlson : Merge pull request #512 from yangtj207/feature/tjyang_datareco +* 2024-09-05 Mun Jung Jung : rename output file +* 2024-09-05 Mun Jung Jung : stream choppy and nonchoppy to 2 out files +* 2024-09-05 Mun Jung Jung : dont change reco fcl +* 2024-09-05 Mun Jung Jung : fcl to filter or save choppy events +* 2024-09-05 sungbinoh : Added pandoraShowerSBN +* 2024-09-05 Tingjun Yang : Merge remote-tracking branch 'upstream/develop' into feature/tjyang_datareco +* 2024-09-04 sungbinoh : Initial C_cal for data +* 2024-09-04 Brinden Carlson : update dependency to sbnd_data v01_25_00 +* 2024-09-04 Thomas Junk : the data and non-data comb channels should match +* 2024-09-04 Thomas Junk : update noisy, no response, shorted channel numbers using Haiwang's list in SBN-doc-3776-v2, p. 9 +* 2024-09-04 Bear Carlson : Merge pull request #506 from SBNSoftware/feature/bearc_g4volumes +* 2024-09-04 Bear Carlson : Merge branch 'develop' into feature/bearc_g4volumes +* 2024-09-04 Bear Carlson : Merge pull request #509 from SBNSoftware/feature/twester_metadata +* 2024-09-03 Tingjun Yang : Delete reco2_data_calib.fcl. +* 2024-09-03 Tingjun Yang : Add pandoraShowerSBN and calorimetry related modules. +* 2024-09-03 Thomas Wester : allow metadata generation for scrub stages +* 2024-09-03 Bear Carlson : Merge pull request #508 from SBNSoftware/feature/vito_update_fhicl_test_for_token +* 2024-09-02 Vito Di Benedetto : Update dCache endpoint Make ifdh calls token compliant +* 2024-08-30 Brinden Carlson : update volumes used for storing MCParticles +* 2024-08-28 Thomas Junk : update channel map for decoder use for gdml v2.2, which adds APA gaps +* 2024-08-28 Thomas Junk : update channel map for decoder use for gdml v2.2, which adds APA gaps +* 2024-08-28 Ewerton Belchior : remove old gaincalib configurations +* 2024-08-28 Ewerton Belchior : using updated geometry +* 2024-08-28 Ewerton Belchior : using new SBND geometry +* 2024-08-27 Ewerton Belchior : using udpated geometry +* 2024-08-27 Ewerton Belchior : using udpated geometry +* 2024-08-26 Lane Kashur : Update gdml to include CRT and col. plane wire fixes +* 2024-08-23 Lane Kashur : Update bad channels list for collection plane APA gap and wire combs +* 2024-08-26 Ewerton Belchior : updated overall SBND response +* 2024-08-25 Henry Lay : Account for geometry swap in GeoAlg +* 2024-08-25 Henry Lay : Point fcl at geometry +* 2024-08-25 Henry Lay : Preparsed geometry files +* 2024-08-25 Henry Lay : Move extra bottom module to correct place in order +* 2024-08-25 Henry Lay : Invert the placing of the orientations within the east & west walls +* 2024-08-25 Henry Lay : Fix indentation +* 2024-08-25 Henry Lay : Swap East & West wall sides +* 2024-08-25 Henry Lay : Fix typo +* 2024-08-25 Henry Lay : Add copy of v02_01 +* 2024-08-23 Bear Carlson : Merge pull request #494 from SBNSoftware/feature/gputnam-emb +* 2024-08-23 Bear Carlson : Merge branch 'develop' into feature/gputnam-emb +* 2024-08-23 Bear Carlson : Merge pull request #495 from SBNSoftware/linyan-calib +* 2024-08-23 Ewerton Belchior : add wirecell noise filtering configs +* 2024-08-23 Ewerton Belchior : add wirecell noise filtering configs +* 2024-08-21 Linyan Wan : reco2 with calibration ntuple +* 2024-08-20 Gray Putnam : Also (dis)enable ModBox to turn (off)on EMB. +* 2024-08-20 Gray Putnam : Typo fix. +* 2024-08-19 Gray Putnam : Add in EMB recombination for simulation and reconstructed calorimetry. Add in g4_modbox fcl which conserves previous funcitonality. +* 2024-08-16 Bear Carlson : Merge pull request #493 from SBNSoftware/feature/bearc_keepcluster3d +* 2024-08-16 Bear Carlson : Merge branch 'develop' into feature/bearc_keepcluster3d +* 2024-08-16 Bear Carlson : Update sbnd-issue.md +* 2024-08-16 Bear Carlson : Update pull_request_template.md +* 2024-08-14 Bear Carlson : Keep cluster3d after reco1 +* 2024-08-07 Bear Carlson : Merge pull request #487 from SBNSoftware/dbrailsf_databadchannels +* 2024-08-07 Bear Carlson : Merge branch 'develop' into dbrailsf_databadchannels +* 2024-08-07 Bear Carlson : Merge pull request #492 from SBNSoftware/bear-is-asleep-patch-1 +* 2024-08-07 Bear Carlson : Create CONTRIBUTING.md +* 2024-08-07 Bear Carlson : Merge pull request #491 from SBNSoftware/bear-is-asleep-patch-1 +* 2024-08-07 Bear Carlson : Restore sbnd-issue.md +* 2024-08-07 Bear Carlson : Restore pull_request_template.md +* 2024-08-07 Bear Carlson : Merge pull request #489 from SBNSoftware/feature/lynnt_pmt_decoder +* 2024-08-07 Bear Carlson : Merge branch 'develop' into feature/lynnt_pmt_decoder +* 2024-08-07 Bear Carlson : Merge pull request #486 from SBNSoftware/feature/trj_tpcanatuple_july2024 +* 2024-08-07 Bear Carlson : Merge branch 'develop' into feature/trj_tpcanatuple_july2024 +* 2024-08-07 Bear Carlson : Merge pull request #484 from SBNSoftware/feature/bearc_spine_data +* 2024-08-07 Bear Carlson : Merge branch 'develop' into feature/bearc_spine_data +* 2024-08-07 Bear Carlson : Merge pull request #483 from SBNSoftware/feature/hlay_crt_decoder_inversion_refactor +* 2024-08-07 Bear Carlson : Merge branch 'develop' into feature/hlay_crt_decoder_inversion_refactor +* 2024-08-07 Henry Lay : Correct inversion for square module above protego +* 2024-08-05 Brinden Carlson : Merge tag 'v09_91_02' into develop +* 2024-07-31 Tingjun Yang : Merge branch 'develop' into feature/bearc_spine_data +* 2024-07-31 Dom Brailsford : Add data services block to sbnd fcl +* 2024-07-30 lynnt20 : Merge branch 'develop' into feature/lynnt_pmt_decoder +* 2024-07-30 lynnt20 : change timestamp units from ns to us +* 2024-07-30 Tingjun Yang : Merge branch 'develop' into feature/bearc_spine_data +* 2024-07-30 Dom Brailsford : Add data services to the two reco fcls +* 2024-07-30 Dom Brailsford : Add data-specific service block. For now this just includes the channel service +* 2024-07-30 Dom Brailsford : Add service definition for data bad channels +* 2024-07-30 Dom Brailsford : Add list of bad/noisy/missing channels from data +* 2024-07-25 Thomas Junk : Add frame number, sample number, and artdaq fragment timestamp to TPCDecodeAna data product +* 2024-07-23 Mun Jung Jung : choppy event filter +* 2024-07-23 Brinden Carlson : run reco1 with data +* 2024-07-18 Henry Lay : Use coinc field to store cable delay +* 2024-07-18 Henry Lay : Apply channel inversion in decoder +* 2024-07-12 sungbinoh : Updating reco2_data.fcl to add caloinfo and to make calib ntuple + +sbndutil +--------------------------------------------------- + +* 2024-09-09 Brinden Carlson : Merge tag 'v09_91_02_01' into develop +* 2024-09-09 Brinden Carlson : Merge branch 'release/v09_91_02_01' +* 2024-09-09 Brinden Carlson : Version v09_91_02_01, patch release for SBN2024A +* 2024-08-05 Brinden Carlson : Merge tag 'v09_91_02' into develop From ad47b1b829a4af431e7500b0c2c26723cc7fcdb0 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Mon, 9 Sep 2024 09:42:46 -0500 Subject: [PATCH 0953/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 35a98b238..1debf70e9 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_91_02_01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910201.html) |`v09_91_02`. | Weekly release. | [Release Notes](ReleaseNotes099102.html) |`v09_90_00`. | Weekly release. | [Release Notes](ReleaseNotes099000.html) |`v09_88_01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes098901.html) From feace229d506b1f67141bc59c80a08d074ab1ab2 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Mon, 9 Sep 2024 09:46:03 -0500 Subject: [PATCH 0954/1437] Rename ReleaseNotes09910201.html to ReleaseNotes09910201.md --- .../{ReleaseNotes09910201.html => ReleaseNotes09910201.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sbndcode_wiki/Releases/{ReleaseNotes09910201.html => ReleaseNotes09910201.md} (100%) diff --git a/sbndcode_wiki/Releases/ReleaseNotes09910201.html b/sbndcode_wiki/Releases/ReleaseNotes09910201.md similarity index 100% rename from sbndcode_wiki/Releases/ReleaseNotes09910201.html rename to sbndcode_wiki/Releases/ReleaseNotes09910201.md From c5ec98b11b18e4048cc34cec7123f8d100c1a3fc Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Thu, 19 Sep 2024 10:31:26 -0500 Subject: [PATCH 0955/1437] Create ReleaseNotes09910202.md --- .../Releases/ReleaseNotes09910202.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09910202.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09910202.md b/sbndcode_wiki/Releases/ReleaseNotes09910202.md new file mode 100644 index 000000000..adecd2906 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09910202.md @@ -0,0 +1,109 @@ +--- +layout: page +title: ReleaseNotes09910202 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.91.02.02 | 19 Sep 2024 | [ReleaseNotes](ReleaseNotes09910202.html) | +| --- | --- | --- | + + + +sbndcode v09_91_02_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_91_02_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_91_02_02/sbndcode-v09_91_02_02.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2024-09-19 Brinden Carlson : Merge branch 'release/v09_91_02_02' +* 2024-09-19 Brinden Carlson : SBN2024A production v09_91_02_02 +* 2024-09-18 Bear Carlson : Merge pull request #517 from SBNSoftware/feature/lynnt_wirecell_data +* 2024-09-18 Bear Carlson : Merge branch 'develop' into feature/lynnt_wirecell_data +* 2024-09-18 Bear Carlson : Merge pull request #520 from SBNSoftware/trj_tpcdecode_bulletproof_rcp_sep16_2024 +* 2024-09-18 Bear Carlson : Merge branch 'develop' into trj_tpcdecode_bulletproof_rcp_sep16_2024 +* 2024-09-18 Bear Carlson : Merge pull request #521 from SBNSoftware/feature/bearc_message_supression +* 2024-09-17 Bear Carlson : Update messages_sbnd.fcl +* 2024-09-16 Thomas Junk : bulletproof the call to removeCachedProduct -- handle case if handle is not valid +* 2024-09-16 lynnt20 : attempt to fix things for c14 compiler +* 2024-09-16 Bear Carlson : Merge pull request #518 from SBNSoftware/coackley_CIFix_v09_91_02 +* 2024-09-16 Bear Carlson : Merge branch 'develop' into coackley_CIFix_v09_91_02 +* 2024-09-16 Bear Carlson : Merge pull request #514 from SBNSoftware/feature/abeever_update_lifetime +* 2024-09-16 Bear Carlson : Merge branch 'develop' into feature/abeever_update_lifetime +* 2024-09-14 Rachel Coackley : Removed commented out line so the CI now works on v09_91_00 +* 2024-09-13 Bear Carlson : Merge pull request #475 from SBNSoftware/feature/bethanym_hit_dumper_pr +* 2024-09-13 Bear Carlson : Merge branch 'develop' into feature/bethanym_hit_dumper_pr +* 2024-09-13 lynnt20 : additional ch num fixes +* 2024-09-13 Bethany McCusker : Update reco1_comm_muontrack_crtreco.fcl +* 2024-09-12 lynnt20 : fix the total number of ch in main jsonnets +* 2024-09-12 lynnt20 : update chresp json file name, add more comments in base fcl config +* 2024-09-11 Rachel Coackley : Allow CI to run on v09_91_02 +* 2024-09-10 lynnt20 : revert change to sim jsonnet +* 2024-09-10 lynnt20 : Merge tag 'v09_91_02_01' into feature/lynnt_wirecell_data +* 2024-09-09 Anna B : Changed etime from 10 ms to 100 ms in detector properties +* 2024-09-09 Brinden Carlson : Merge tag 'v09_91_02_01' into develop +* 2024-09-06 Henry Lay : Final changes +* 2024-09-06 Henry Lay : Typo - correction +* 2024-09-06 Henry Lay : And again... +* 2024-09-06 Henry Lay : Tidy up fcls +* 2024-09-06 Henry Lay : Return defaults to sensible state +* 2024-09-06 Henry Lay : Merge remote-tracking branch 'origin/develop' into feature/bethanym_hit_dumper_pr +* 2024-09-05 lynnt20 : update chresp file name +* 2024-08-23 Anna B : Changed lifetime from 10 ms to 100 ms +* 2024-08-07 lynnt20 : need to use 'null' instead of empty string for empty file name +* 2024-08-06 lynnt20 : Merge tag 'v09_91_02' into feature/lynnt_wirecell_data +* 2024-08-06 lynnt20 : add block for parametrized per channel electronics response for data in fcl and jsonnet +* 2024-08-06 lynnt20 : - allowing perchannel electronics response, removing changes to jsonnet for simulation, using NF field response from uboone instead of PD +* 2024-07-29 lynnt20 : temporarily add chresp file to mc sp-only jsonnet +* 2024-06-20 Henry Lay : Update run_muontrack_crtreco.fcl +* 2024-06-20 Henry Lay : Update sbndcode/Commissioning/fcls/run_muontrack_crtreco.fcl +* 2024-06-20 bethmccusker : another slight change +* 2024-06-20 bethmccusker : slight change +* 2024-06-20 bethmccusker : a few more pr changes +* 2024-06-19 bethmccusker : Slight change +* 2024-06-19 bethmccusker : Some more pr changes +* 2024-06-18 bethmccusker : changes requested from pr +* 2024-05-28 Henry Lay : Clean up for PR +* 2024-05-28 bethmccusker : changed crt track angle variables from radians to degrees +* 2024-05-14 Henry Lay : Add badly written fcl for current workflow +* 2024-05-14 Henry Lay : Change defaults for hitdumper +* 2024-05-14 Henry Lay : Add CRT reco2 producers to fcl +* 2024-05-14 Henry Lay : Ensure larger values for max filled trees +* 2024-05-14 Henry Lay : Update fcl for correct new names +* 2024-05-14 Henry Lay : Few cleanups +* 2024-05-13 bethmccusker : :) +* 2024-05-13 bethmccusker : CRT track variable now alll working +* 2024-05-13 bethmccusker : got CRT track varibles in trees +* 2024-05-10 Henry Lay : Add CRT SpacePoint & Cluster info +* 2024-05-10 Henry Lay : Implement CRT strip hits in HitDumper +* 2024-05-09 Henry Lay : Add Amy & Flavia's updates unrelated to CRT + +sbndutil +--------------------------------------------------- + +* 2024-09-19 Brinden Carlson : Merge tag 'v09_91_02_02' into develop +* 2024-09-19 Brinden Carlson : Merge branch 'release/v09_91_02_02' +* 2024-09-19 Brinden Carlson : SBN2024A production v09_91_02_02 +* 2024-09-09 Brinden Carlson : Merge tag 'v09_91_02_01' into develop From ea8118632a126ce389ce19963a05c3b333b12da1 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Thu, 19 Sep 2024 10:31:48 -0500 Subject: [PATCH 0956/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 1debf70e9..a6b032f3d 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_91_02_02`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910202.html) |`v09_91_02_01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910201.html) |`v09_91_02`. | Weekly release. | [Release Notes](ReleaseNotes099102.html) |`v09_90_00`. | Weekly release. | [Release Notes](ReleaseNotes099000.html) From 2ee861f6692c44bf3dcd39b22b9abb3cc2aacca5 Mon Sep 17 00:00:00 2001 From: eyandel Date: Fri, 20 Sep 2024 16:03:42 -0500 Subject: [PATCH 0957/1437] Update RestartGrafana.md Erin updated with the correct log locations for sbnd --- sbn_online_wiki/RestartGrafana.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sbn_online_wiki/RestartGrafana.md b/sbn_online_wiki/RestartGrafana.md index 974a53020..e893ca9da 100644 --- a/sbn_online_wiki/RestartGrafana.md +++ b/sbn_online_wiki/RestartGrafana.md @@ -16,6 +16,14 @@ _Note: Sometimes it may be necessary to delete old pid or authdigest_shm files._ rm /data/grafana/data/container/pids/*.pid rm /data/grafana/data/container/httpd/data/authdigest_shm.* ``` +or if you are using sbnd-evb04 the grafana directories are in +```bash +/scratch_local/grafana +``` +Often the log that is the most trouble and needs to be removed (as root) is +```bash +rm -f /scratch_local/grafana/logs/graphite/exception.log +``` * start grafana container with session with "systemctl start grafana.service; systemctl status grafana.service". From 1468916f2644cc71d114c6047056919340de95e2 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 26 Sep 2024 13:49:51 -0700 Subject: [PATCH 0958/1437] Update SBN analysis frameworks convener name --- AnalysisInfrastructure/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/index.md b/AnalysisInfrastructure/index.md index 21f87a0c8..7f00fdeb8 100644 --- a/AnalysisInfrastructure/index.md +++ b/AnalysisInfrastructure/index.md @@ -53,7 +53,7 @@ Conveners: [Marco del Tutto and Alessandro Menegolli](mailto:) ### [Analysis Framework](ana.md) -Conveners: [Fernanda Psihas and Gianluca Petrillo](mailto:psihas@fnal.gov,petrillo@slac.stanford.edu) +Conveners: [Josephine Paton and Gianluca Petrillo](mailto:jpaton@fnal.gov,petrillo@slac.stanford.edu) Mailing list and Slack channel: [sbn-software](mailto:sbn-software@listserv.fnal.gov), [`#cafana`](https://shortbaseline.slack.com/archives/CMZCFGRFT) From f7d5a41225ad3facb53a225fc31a390c76e764a6 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 26 Sep 2024 13:52:58 -0700 Subject: [PATCH 0959/1437] Update current editor names --- sbn/codingconv/CodingConventions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn/codingconv/CodingConventions.md b/sbn/codingconv/CodingConventions.md index c6ad01fec..d809f25ca 100644 --- a/sbn/codingconv/CodingConventions.md +++ b/sbn/codingconv/CodingConventions.md @@ -67,9 +67,9 @@ in GIT markdown, the link may look like: # Editing ################################################################## -The editors of this document are at this time -[Gianluca Petrillo](mailto:petrillo@slac.stanford.edu) and -[Fernanda Psihas](mailto:psihas@fnal.gov). +The editor of this document is at this time +[Gianluca Petrillo](mailto:petrillo@slac.stanford.edu). +It was originally designed also by [Fernanda Psihas](mailto:psihas@fnal.gov). This document is expected to evolve as new insights, opinions or practices prevail. To propose an addition or a semantic change, please write to the main From 6c07df6721d53f71447ccca4f3ec9c66e6d2b9b0 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Tue, 1 Oct 2024 11:59:36 -0500 Subject: [PATCH 0960/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index a6b032f3d..1d7d1d5cd 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_91_02_02p01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910202p01.html) |`v09_91_02_02`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910202.html) |`v09_91_02_01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910201.html) |`v09_91_02`. | Weekly release. | [Release Notes](ReleaseNotes099102.html) From 64d54b0603910772575dc1fb868f6662ecc35c75 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Tue, 1 Oct 2024 12:00:59 -0500 Subject: [PATCH 0961/1437] Create ReleaseNotes09910202p01.md --- .../Releases/ReleaseNotes09910202p01.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09910202p01.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09910202p01.md b/sbndcode_wiki/Releases/ReleaseNotes09910202p01.md new file mode 100644 index 000000000..e5dbc2b6b --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09910202p01.md @@ -0,0 +1,52 @@ +--- +layout: page +title: ReleaseNotes09910202p01 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.91.02.02p01 | 01 Oct 2024 | [ReleaseNotes](ReleaseNotes09910202p01.html) | +| --- | --- | --- | + + + +sbndcode v09_91_02_02p01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_91_02_02p01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_91_02_02p01/sbndcode-v09_91_02_02p01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2024-10-01 Brinden Carlson : Merge branch 'release/v09_91_02_02p01' +* 2024-10-01 Brinden Carlson : Patch release to use sbncode v09_91_02_02 +* 2024-09-26 Bear Carlson : Update CONTRIBUTING.md +* 2024-09-20 Bear Carlson : Update pull_request_template.md +* 2024-09-19 Brinden Carlson : Merge tag 'v09_91_02_02' into develop + +sbndutil +--------------------------------------------------- + +* 2024-10-01 Brinden Carlson : Merge tag 'v09_91_02_02p01' into develop +* 2024-10-01 Brinden Carlson : Merge branch 'release/v09_91_02_02p01' +* 2024-09-19 Brinden Carlson : Merge tag 'v09_91_02_02' into develop From cd12ac5e8f7174e7f505402cb5385a06d771e17d Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 9 Oct 2024 18:01:35 -0400 Subject: [PATCH 0962/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 3d96da32c..e8e63f664 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -56,6 +56,12 @@ SBND MC | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| BNB + Cosmics CV | MC2024B | v09_91_02_01 | 213338 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | larcv | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_flat_caf_sbnd | | BNB + Cosmics GiBUU | MC2023B | v09_75_03_02 | 102189 | reco1 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_gibuu_g4_wcsim_detsim_reco1_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_reco2_sbnd | From 94d17fa00f91d659c9401b23ba5e34dd6ad5c15b Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Fri, 11 Oct 2024 10:26:00 -0500 Subject: [PATCH 0963/1437] Update Spack-Development-Tutorial.md --- sbn_online_wiki/Spack-Development-Tutorial.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sbn_online_wiki/Spack-Development-Tutorial.md b/sbn_online_wiki/Spack-Development-Tutorial.md index 11eb64e24..caf1ba44f 100644 --- a/sbn_online_wiki/Spack-Development-Tutorial.md +++ b/sbn_online_wiki/Spack-Development-Tutorial.md @@ -53,15 +53,15 @@ This step ensures your current working directory is the environment directory yo Add the `sbndaq-suite` package and its specific configuration, and set up the `sbndaq-artdaq` package for development: ```sh -spack add sbndaq-suite@v1_10_01 s=128 %gcc@12.2.0 arch=x86_64_v2 -spack develop sbndaq-artdaq@v1_10_01 +spack add sbndaq-suite@v1_10_02 s=131 %gcc@12.1.0 arch=x86_64_v2 +spack develop sbndaq-artdaq@v1_10_02 ``` -- `spack add sbndaq-suite@v1_10_01`: Adds the `sbndaq-suite` package version `v1_10_01` to the environment. -- `s=128`: Specifies the package variants or options. -- `%gcc@12.2.0`: Specifies the compiler to use (GCC version 12.2.0). +- `spack add sbndaq-suite@v1_10_02`: Adds the `sbndaq-suite` package version `v1_10_02` to the environment. +- `s=131`: Specifies the package variants or options. +- `%gcc@12.1.0`: Specifies the compiler to use (GCC version 12.2.0). - `arch=x86_64_v2`: Specifies the target architecture. -- `spack develop sbndaq-artdaq@v1_10_01`: Marks the `sbndaq-artdaq` package version `v1_10_01` for development, meaning its source code will be added to the environment for easy editing. +- `spack develop sbndaq-artdaq@v1_10_02`: Marks the `sbndaq-artdaq` package version `v1_10_02` for development, meaning its source code will be added to the environment for easy editing. ## Step 5: Concretize the Environment @@ -138,7 +138,7 @@ Here are some useful examples of interacting with Spack after setting up and wor To list all installed versions of the `sbndaq-suite` package with detailed information: ```sh -spack find -lpvf sbndaq-suite@v1_10_01 +spack find -lpvf sbndaq-suite@v1_10_02 ``` - `-l`: Displays package hashes. @@ -151,11 +151,11 @@ spack find -lpvf sbndaq-suite@v1_10_01 To load the specified version of the `sbndaq-suite` package into your current shell environment: ```sh -spack load sbndaq-suite@v1_10_01 %gcc@12.2.0 s=128 +spack load sbndaq-suite@v1_10_02 %gcc@12.1.0 s=131 ``` -- `%gcc@12.2.0`: Specifies the compiler version. -- `s=128`: Specifies the package variant. +- `%gcc@12.1.0`: Specifies the compiler version. +- `s=131`: Specifies the package variant. ### Example 3: Find Loaded Packages From 8512ca681941f3f138b6bc29e56fa51608ebc27c Mon Sep 17 00:00:00 2001 From: cerati Date: Fri, 11 Oct 2024 16:16:48 -0500 Subject: [PATCH 0964/1437] Update Wiki.md --- sbn/sbnprod_wiki/Wiki.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn/sbnprod_wiki/Wiki.md b/sbn/sbnprod_wiki/Wiki.md index cbef3a526..fc8434346 100644 --- a/sbn/sbnprod_wiki/Wiki.md +++ b/sbn/sbnprod_wiki/Wiki.md @@ -49,6 +49,8 @@ Here you can find the [dcache persistant usage by VO](https://lsvip.fnal.gov/mon Tape usage for ICARUS can be found at [this page](https://fifemon.fnal.gov/monitor/d/BSnVdWDnk/tape-data?orgId=1&var-Experiment=icarus&var-FileFamily=All&from=now-1y&to=now). +Fermigrid allocation, e.g. for ICARUS at [this page](https://fifemon.fnal.gov/monitor/d/000000192/condor-group-quotas?orgId=1&var-pool=fifebatch&var-group=icarus). + ICARUS data Keepup processing -------------------------- ICARUS keepup documentation can be found in the [ICARUS data keepup processing page](/sbn/sbnprod_wiki/ICARUS Keepup Processing) From de009433d0a07a1c7cbdc409c72b3ed4f8bb66cf Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 16 Oct 2024 10:18:31 -0400 Subject: [PATCH 0965/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index e8e63f664..c530ced86 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -56,7 +56,7 @@ SBND MC | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| BNB + Cosmics CV | MC2024B | v09_91_02_01 | 213338 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | +| BNB + Cosmics CV | MC2024B | v09_91_02_01 | 316623 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | From b26fd32c3345c0812bb4cf289e0b6d69edaec01b Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Thu, 17 Oct 2024 13:15:57 -0400 Subject: [PATCH 0966/1437] Create sbncode_v09_92_00.md --- .../Releases/sbncode_v09_92_00.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00.md new file mode 100644 index 000000000..3d8e6ceb0 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00.md @@ -0,0 +1,43 @@ +--- +layout: page +title: sbncode_v09_91_02 +toc: true +--- + +sbncode_v09_92_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v09_92_00 and v09_91_02](https://github.com/SBNSoftware/sbncode/compare/v09_91_02_02...v09_92_00) + +Date +--------------------------------------------------- +17 October 2024 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_92_00) has been cut and distributed + +* sbncode (v09_92_00): + + Using (updated dependencies): + * larsoft v09_92_00 + * sbnobj v09_19_05 + * lardataobj v09_18_05 + * sbndaq_artdaq_core v1_09_02of1 + + Includes: + + * Keep CAF happy with CRT [#471](https://github.com/SBNSoftware/sbncode/pull/471) Ensures that CAFMaker continues to pickup the correct variable (for MC) when changes are made in sbnobj to the format of the CRT reconstruction objects. + * Accommodate changes to recob::Hit [#472](https://github.com/SBNSoftware/sbncode/pull/472) Pursuant to changes introduced in LArSoft/lardataobj#42 + * Change the default channel simulation to 2d [#473](https://github.com/SBNSoftware/sbncode/pull/473) + * update for sbndaq offline release [#474](https://github.com/SBNSoftware/sbncode/pull/474) + +Extra info +--------------------------------------------------- +* Includes breaking changes to sbndcode and icaruscode due to changes in lardataobj (see above PR#472). Corresponding PRs in sbnd and icarus were initiated. From 1caf96901f9213df6b9220c61722cc8e35afa3cb Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Thu, 17 Oct 2024 13:21:21 -0400 Subject: [PATCH 0967/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 509e9ffc8..f9c6b4e14 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_92_00` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00) `v09_91_02` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_91_02) `v09_72_00_07` | 'sbncode' SBN2023A 'NuMI' production patch|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07) `v09_90_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_90_00) From 0f2e50be04c151817458f5a75c7b61641827cb83 Mon Sep 17 00:00:00 2001 From: Vito Di Benedetto <55766483+vitodb@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:51:16 -0500 Subject: [PATCH 0968/1437] Update Newbie_Material.md --- sbndcode_wiki/Newbie_Material.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/sbndcode_wiki/Newbie_Material.md b/sbndcode_wiki/Newbie_Material.md index a3a3da1c6..c1477c566 100644 --- a/sbndcode_wiki/Newbie_Material.md +++ b/sbndcode_wiki/Newbie_Material.md @@ -87,11 +87,21 @@ when logging in to SBND GPVM nodes, they need to add to the above also the line XAuthLocation /opt/X11/bin/xauth ``` -MacOS users can\'t use kerberos tools from conda environment, -they need either disable conda environment, -or use system *kinit* running: +MacOS users can\'t use kerberos tools from conda environment. +To check what kerberos tools are set as default, run the following command ```shell -/usr/bin/kinit -f [yourusername]@FNAL.GOV` +which kinit +``` +if the output is different from +```shell +/usr/bin/kinit +``` +and it has `conda` in the path, possibly the system is using kerberos tool from conda environment, +which is not compatible with FNAL kerberos setup. +Users need either to disable conda environment, +or use the system *kinit* running: +```shell +/usr/bin/kinit -f [yourusername]@FNAL.GOV ``` **Reset Fermilab passwords** From 554737badf3ca269847529bd3e311e38c50aef17 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 22 Oct 2024 12:57:10 -0400 Subject: [PATCH 0969/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 56 ++------------------------------------ 1 file changed, 2 insertions(+), 54 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index c530ced86..5e38fc11d 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -62,6 +62,7 @@ SBND MC | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_flat_caf_sbnd | +| --- | --- | --- | --- | --- | --- | | BNB + Cosmics GiBUU | MC2023B | v09_75_03_02 | 102189 | reco1 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_gibuu_g4_wcsim_detsim_reco1_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_reco2_sbnd | @@ -122,36 +123,12 @@ SBND MC | --- | --- | --- | --- | calib tuple | hist_official_MCP2023Av2_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2023Av2_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2023Av2_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_flat_caf_sbnd | -| BNB Nue + cosmics | MC2022A | v09_37_02_04 | 175000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_reco2_concat_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_reco2_concat_flat_caf_sbnd | -| BNB Full Osc + cosmics | MC2022A | v09_37_02_04 | 175000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_concat_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_concat_flat_caf_sbnd | -| In time cosmics | MC2022A | v09_37_02_04 | 380000 | reco1 | official_MCP2022A_prodcorsika_proton_intime_filter_sce_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2022A_prodcorsika_proton_intime_filter_sce_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodcorsika_proton_intime_filter_sce_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2022A_prodcorsika_proton_intime_filter_sce_reco2_concat_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodcorsika_proton_intime_filter_sce_reco2_concat_flat_caf_sbnd | +| --- | --- | --- | --- | --- | --- | | BNB nu+cosmics | MC2022A | v09_37_02_04 | 3500000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_concat_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_concat_flat_caf_sbnd | -| BNB nue+cosmics, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_reco2_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_reco2_flat_caf_sbnd | -| BNB+cosmics, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2022A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_flat_caf_sbnd | | NS-CRT crossing muon triggers, raw | MC2022A | v09_37_02_04 | 10000 | reco1 | official_MCP2022A_prodcorsika_cosmics_proton_frontbackcrt_mu_filter_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2022A_prodcorsika_cosmics_proton_frontbackcrt_mu_filter_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodcorsika_cosmics_proton_frontbackcrt_mu_filter_reco2_sbnd | @@ -162,35 +139,6 @@ SBND MC | --- | --- | --- | --- | calib tuple | hist_official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2022A_prodcorsika_cosmics_proton_eastwestcrt_mu_filter_reco2_flat_caf_sbnd | -| BNB nue + cosmic | MC2021Bv1 | v09_28_01_02 | 15000 | reco2 | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_sbnd | -| --- | --- | --- | 14800 | flat caf | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_flat_caf_sbnd | -| BNB nue + cosmic | MC2021Bv1 | v09_28_01_02 | 15000 | reco1 | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configh-v1_tpc_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | 15000 | reco2 | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_sbnd | -| --- | --- | --- | 15000 | caf | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_caf_sbnd | -| BNB full osc + cosmics | MC2021Bv1 | v09_28_01_02 | --- | reco1 | test15_official_test15_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco1_sbnd | -| --- | --- | --- | --- | reco2 | test_official_test_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_sbnd | -| --- | --- | --- | --- | caf | test_official_test_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_fullosc_spill_gsimple-configh-v1_tpc_reco2_caf_sbnd | -| BNB nu + cosmic | MC2021Bv1 | v09_28_01_02 | --- | reco1 | official_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco1_sbnd | -| --- | --- | --- | --- | reco2 | test100_official_test100_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_sbnd | -| --- | --- | --- | --- | caf | test100_official_test100_MC2021Bv1_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configh-v1_tpc_reco2_caf_sbnd | -| in time cosmics, with SCE | MCP2021A | v09_26_00 | --- | reco2 | official_MCP2021A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_reco2_sbnd | -| --- | --- | v09_28_00 | 1144 | concat caf | official_MCP2021A_CAF_prodcorsika_proton_intime_filter_sc_concat_caf_sbnd | -| BNB neutrinos + cosmics, with SCE | MCP2021A | v09_26_00 | --- | reco2 | official_MCP2021A_prodgenie_nu_singleinteraction_tpc_sbnd_reco2_sbnd | -| --- | --- | v09_28_00 | 185300 | flat caf | official_MCP2021A_CAF_prodoverlay_corsika_cosmics_proton_genie_nu_spill_tpc_sbnd_flat_caf_sbnd | -| BNB nu only, with SCE | MCP2021A | v09_26_00 | --- | reco2 | official_MCP2021A_prodcorsika_proton_intime_filter_sce_reco2_sbnd | -| --- | --- | v09_28_00 | 150000 | concat caf | official_MCP2021A_CAF_prodgenie_nu_singleinteraction_tpc_sbnd_concat_caf_sbnd | -| Intime Cosmics | SBNWorkshop0421 | v09_19_00_02 | 150627 | flat cafs | workshop_SBNWorkshop0421_prodcorsika_proton_intime_filter_flat_caf_sbnd | -| NuE Overlay | SBNWorkshop0421 | v09_19_00_01 | 45700 | flat cafs | workshop_SBNWorkshop0421_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configf-v1_tpc_flat_caf_sbnd | -| BNB Overlay | SBNWorkshop0421 | v09_19_00_01 | 286850 | flat cafs | workshop_SBNWorkshop0421_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configf-v1_tpc_flat_caf_sbnd | -| Intime cosmics | MCP2020A | v09_09_00 | 151407 | reco2 | official_MCP2020A_prodcorsika_proton_intime_filter_reco2_sbnd | -| BNBnue | MCP2020A | v09_09_00 | 72300 | reco2 | official_MCP2020A_prodgenie_intrnue_singleinteraction_tpc_gsimple-configf-v1_reco2_sbnd | -| BNBnue + cosmics | MCP2020A | v09_09_00 | 45950 | reco2 | official_MCP2020A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_gsimple-configf-v1_tpc-configf-v1_tpc_reco2_sbnd | -| BNB nu + cosmics | MCP2020A | v09_09_00 | 287350 | reco2 | official_MCP2020A_prodoverlay_corsika_cosmics_proton_genie_nu_spill_gsimple-configf-v1_tpc-configf-v1_tpc_reco2_sbnd | -| Cathode crossing muons | MCP2020A | v09_08_00 | 9700 | detsim | official_MCP2020A_prodsingle_mu_10GeV_cathodecrossing_detsim_sbnd | -| low energy electrons | MCP2020A | v09_08_00 | 19000 | detsim | official_MCP2020A_prodsingle_electron_1-50MeV_detsim_sbnd | -| Stopping muons from top | MCP2020A | v09_08_00 | 9500 | detsim | official_MCP2020A_prodsingle_muplus_stopping_fromtop_detsim_sbnd | -| BNB nu (single interaction) | MCP2020A | v09_09_00 | 198400 | reco2 | official_MCP2020A_prodgenie_nu_singleinteraction_tpc_gsimple-configf-v1_reco2_sbnd | - ICARUS MC -------------------------- From 07c065c002a40f7d95e83cacaf5b89a1d41f5102 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 22 Oct 2024 15:58:56 -0400 Subject: [PATCH 0970/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 5e38fc11d..a948d6eb2 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -56,7 +56,7 @@ SBND MC | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| BNB + Cosmics CV | MC2024B | v09_91_02_01 | 316623 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | +| BNB + Cosmics CV | MC2024B | v09_91_02_02 | 316623 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | From 05a0fb3c90be1a0c6d746e297b0fa82db5fd8e1a Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Wed, 23 Oct 2024 09:18:34 -0500 Subject: [PATCH 0971/1437] Update sbncode_v09_92_00.md Fix title --- .../ReleaseManagement/Releases/sbncode_v09_92_00.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00.md index 3d8e6ceb0..9c7267ab2 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00.md @@ -1,6 +1,6 @@ --- layout: page -title: sbncode_v09_91_02 +title: sbncode_v09_92_00 toc: true --- From 76b90e3d4141e1da693bfa4fa855f40f9ab33a66 Mon Sep 17 00:00:00 2001 From: eyandel Date: Tue, 29 Oct 2024 10:42:58 -0500 Subject: [PATCH 0972/1437] Update MFTU.md --- sbn_online_wiki/ACnet/MFTU.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbn_online_wiki/ACnet/MFTU.md b/sbn_online_wiki/ACnet/MFTU.md index c31fd6d3e..b1ee2c687 100644 --- a/sbn_online_wiki/ACnet/MFTU.md +++ b/sbn_online_wiki/ACnet/MFTU.md @@ -139,8 +139,8 @@ All of Channels B9 through B16 function in this manner with the possibility for | A8 | $1F | $1D | 0 | --- | | A9 | $1D | $1D |32520us| PTB | | A10 | $1D | $1D |32520us| --- | -| A11 | $1D | $1D | 0 | --- | -| A12 | $1D | $1D | 0 | --- | +| A11 | $1D | $1D |32520us| --- | +| A12 | $1D | $1D |32520us| --- | | A13 | $1D | $1D | 0 | --- | | A14 | $1D | $1D | 0 | --- | | A15 | BES | $1D | 0 | --- | @@ -153,10 +153,10 @@ All of Channels B9 through B16 function in this manner with the possibility for | B6 | $74 | $74 | 0 | --- | | B7 | $74 | $74 | 0 | --- | | B8 | $74 | $74 | 0 | --- | -| B9 | $1D | $1D | 0 | --- | -| B10 | $1D | $1D | 0 | --- | -| B11 | $1D | $1D | 0 | --- | -| B12 | $1D | $1D | 0 | --- | +| B9 | $1D | $1D |32520us| --- | +| B10 | $1D | $1D |32520us| --- | +| B11 | $1D | $1D |32520us| --- | +| B12 | $1D | $1D |32520us| --- | | B13 | $1D | $1D | 0 | --- | | B14 | $1D | $1D | 0 | --- | | B15 | $1D | $1D | 0 | --- | From 9ac6fd68ce98bbc691e4cba681f736e424d1b4a6 Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Wed, 30 Oct 2024 10:37:20 -0400 Subject: [PATCH 0973/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index f9c6b4e14..72c5a0ecb 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_93_01` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_93_01) `v09_92_00` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_92_00) `v09_91_02` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_91_02) `v09_72_00_07` | 'sbncode' SBN2023A 'NuMI' production patch|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00_07) From 6c944a2286d8b5cf053aeb5296a2dcab0653ef28 Mon Sep 17 00:00:00 2001 From: Ibrahim Safa Date: Wed, 30 Oct 2024 10:39:15 -0400 Subject: [PATCH 0974/1437] Create sbncode_v09_93_01.md --- .../Releases/sbncode_v09_93_01.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_93_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_93_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_93_01.md new file mode 100644 index 000000000..396d8e5d4 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_93_01.md @@ -0,0 +1,28 @@ +--- +layout: page +title: sbncode_v09_93_01 +toc: true +--- + +sbncode_v09_93_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Date +--------------------------------------------------- +30 October 2024 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v09_93_01) has been cut and distributed + +* sbncode (v09_93_01): + + Using (updated dependencies): + * larsoft v09_93_01 + * nusystematics v1_05_02 From 73a96e835041910504828ba65b3a540044318cb1 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Thu, 31 Oct 2024 11:42:17 -0500 Subject: [PATCH 0975/1437] Create ReleaseNotes099301.md --- sbndcode_wiki/Releases/ReleaseNotes099301.md | 160 +++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes099301.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes099301.md b/sbndcode_wiki/Releases/ReleaseNotes099301.md new file mode 100644 index 000000000..373f96065 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes099301.md @@ -0,0 +1,160 @@ +--- +layout: page +title: ReleaseNotes099301 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.93.01 | 31 Oct 2024 | [ReleaseNotes](ReleaseNotes099301.html) | +| --- | --- | --- | + + + +sbndcode v09_93_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_93_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_93_01/sbndcode-v09_93_01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2024-10-31 Brinden Carlson : Merge branch 'release/v09_93_01' +* 2024-10-31 Brinden Carlson : Update to larsoft v09_93_01 +* 2024-10-31 Bear Carlson : Merge pull request #542 from SBNSoftware/feature/twester_prod_fcls +* 2024-10-31 Bear Carlson : Merge branch 'develop' into feature/twester_prod_fcls +* 2024-10-31 Bear Carlson : Merge pull request #535 from SBNSoftware/trj_update_timesize_oct14_2024 +* 2024-10-31 Bear Carlson : Merge branch 'develop' into trj_update_timesize_oct14_2024 +* 2024-10-31 Bear Carlson : Merge pull request #533 from SBNSoftware/bugfix/pgreen_hitdumper_fix +* 2024-10-31 Bear Carlson : Merge branch 'develop' into bugfix/pgreen_hitdumper_fix +* 2024-10-31 Bear Carlson : Merge pull request #531 from SBNSoftware/feature/bearc_cluster3dfix +* 2024-10-31 Bear Carlson : Merge branch 'develop' into feature/bearc_cluster3dfix +* 2024-10-31 Bear Carlson : Merge pull request #528 from SBNSoftware/dbrailsf_reco2fclorg_rebased +* 2024-10-31 Bear Carlson : Merge branch 'develop' into dbrailsf_reco2fclorg_rebased +* 2024-10-31 Bear Carlson : Merge pull request #522 from SBNSoftware/feature/munjung-data_caf +* 2024-10-31 Bear Carlson : Merge branch 'develop' into feature/munjung-data_caf +* 2024-10-30 Bear Carlson : Merge branch 'develop' into dbrailsf_reco2fclorg_rebased +* 2024-10-30 Bear Carlson : Merge branch 'develop' into feature/twester_prod_fcls +* 2024-10-30 Bear Carlson : Merge branch 'develop' into trj_update_timesize_oct14_2024 +* 2024-10-30 Bear Carlson : Merge branch 'develop' into bugfix/pgreen_hitdumper_fix +* 2024-10-30 Bear Carlson : Update fast_simulation_reconstruction_test_muons.sh +* 2024-10-30 Bear Carlson : Update fast_simulation_reconstruction_test_electrons.sh +* 2024-10-30 Bear Carlson : Merge pull request #516 from knoepfel/summed-adc-interface +* 2024-10-30 Dom Brailsford : Merge branch 'develop' into dbrailsf_reco2fclorg_rebased +* 2024-10-30 Dom Brailsford : Rename comm fcl to drop 'sce' as its now assumed standard +* 2024-10-30 Dom Brailsford : Mention SCE being enabled as part of the standard reco2 workflow +* 2024-10-23 Bear Carlson : Merge branch 'feature/bearc_cluster3d_hitfix_combine' into feature/bearc_cluster3dfix +* 2024-10-23 Bear Carlson : Merge branch 'develop' into summed-adc-interface +* 2024-10-22 Thomas Wester : fcl to run all the decoders +* 2024-10-22 Bear Carlson : Update ci_tests.cfg +* 2024-10-21 Bear Carlson : Merge pull request #530 from SBNSoftware/feature/bearc_cilimitfix +* 2024-10-21 Bear Carlson : Merge branch 'develop' into feature/bearc_cilimitfix +* 2024-10-21 Bear Carlson : Update HitAnalysisAlg.cpp +* 2024-10-17 Bear Carlson : Update drops_reco1.fcl +* 2024-10-17 Bear Carlson : Merge pull request #526 from SBNSoftware/feature/hlay_crt_offline_pr +* 2024-10-17 Bear Carlson : Merge branch 'develop' into feature/hlay_crt_offline_pr +* 2024-10-17 Bear Carlson : Merge pull request #525 from SBNSoftware/feature/acastill_ophitfinder_raw_data +* 2024-10-17 Bear Carlson : Merge branch 'develop' into feature/acastill_ophitfinder_raw_data +* 2024-10-17 Bear Carlson : Merge pull request #523 from SBNSoftware/feature/bearc_pgunT0 +* 2024-10-17 Bear Carlson : Merge branch 'develop' into feature/bearc_pgunT0 +* 2024-10-17 Bear Carlson : Merge pull request #490 from SBNSoftware/feature/trj_ntb_decoder +* 2024-10-15 Mun Jung Jung : filename tag to caf ttree +* 2024-10-14 Thomas Junk : update timesize (the size of the frame in samples minus one) to 1143 per communication with Georgia and Seokju +* 2024-10-14 Patrick Green : fix for running without crt strip hits present +* 2024-10-11 Bear Carlson : Save only space points +* 2024-10-10 Brinden Carlson : Updated CI cpu and memory ranges +* 2024-10-10 Brinden Carlson : Update CI cpu and memory limits +* 2024-10-10 Bear Carlson : Merge branch 'develop' into feature/trj_ntb_decoder +* 2024-10-10 Henry Lay : Merge pull request #527 from SBNSoftware/feature/hlay_crt_offline_quick_fix +* 2024-10-04 Dom Brailsford : Remove reco2_sce.fcl +* 2024-10-04 Dom Brailsford : Update the readme +* 2024-10-04 Dom Brailsford : Update all fcls to use standard_reco2_sbnd.fcl again +* 2024-10-04 Dom Brailsford : Update reco2_data.fcl to use standard_reco2_sbnd.fcl +* 2024-10-04 Dom Brailsford : Convert reco2 to the new format +* 2024-10-04 Dom Brailsford : Add a nominal reco2 drops. No additional drops are currently needed for reco2, but add the infrastructure now anyway... +* 2024-10-04 Dom Brailsford : Create a workflow fcl for reco2, mirroring the setup for reco1 +* 2024-10-01 Brinden Carlson : Merge tag 'v09_91_02_02p01' into develop +* 2024-10-01 Henry Lay : Fix for function used in visualisation of channel 0 +* 2024-09-30 Henry Lay : Correct upper south wall vertical modules channel inversion - thanks Rachel & Andy +* 2024-09-30 Henry Lay : Add copy of channel map v6 +* 2024-09-30 Henry Lay : Remove debug statement +* 2024-09-30 Henry Lay : Fix 'top of module' discrepancy - thanks Andy & Rachel +* 2024-10-01 asanchezcastillo : Merge branch 'develop' into feature/acastill_ophitfinder_raw_data +* 2024-09-27 Alejandro Sánchez Castillo : Update PMT trigger values to run on raw waveforms +* 2024-09-26 Henry Lay : Add CRT reconstruction to standard workflow +* 2024-09-26 Henry Lay : Mistake from the conflict resolution +* 2024-09-26 Henry Lay : Required HitDumper changes to keep both CRT times +* 2024-09-26 Henry Lay : Merge branch 'develop' into feature/hlay_crt_offline_pr +* 2024-09-26 Bear Carlson : Merge pull request #500 from SBNSoftware/feature/hlay_crt_offline_misc +* 2024-09-26 Bear Carlson : Merge pull request #501 from SBNSoftware/feature/hlay_crt_offline_ana +* 2024-09-26 Bear Carlson : Merge pull request #503 from SBNSoftware/feature/hlay_crt_offline_reco +* 2024-09-26 Henry Lay : Merge branch 'feature/hlay_crt_offline_pr' into feature/hlay_crt_offline_misc +* 2024-09-26 Henry Lay : Merge branch 'feature/hlay_crt_offline_pr' into feature/hlay_crt_offline_ana +* 2024-09-26 Henry Lay : Merge branch 'feature/hlay_crt_offline_pr' into feature/hlay_crt_offline_reco +* 2024-09-26 Bear Carlson : Merge pull request #502 from SBNSoftware/feature/hlay_crt_offline_calib +* 2024-09-26 Bear Carlson : Merge pull request #504 from SBNSoftware/feature/hlay_crt_offline_geo +* 2024-09-25 Alejandro Sánchez Castillo : Update ophitfinder parameters to run on raw waveforms +* 2024-09-25 Henry Lay : Make necessary changes to cope with always needing a fcl configuration +* 2024-09-25 Henry Lay : Make necessary changes to cope with always needing a fcl configuration +* 2024-09-25 Henry Lay : Make necessary changes to cope with always needing a fcl configuration +* 2024-09-25 Henry Lay : Make necessary changes to cope with always needing a fcl configuration +* 2024-09-25 Mun Jung Jung : cafmaker data calo labels +* 2024-09-24 Moon Jung : Update sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_data.fcl +* 2024-09-24 Moon Jung : Update sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_data.fcl +* 2024-09-24 Thomas Junk : sbncode version to v09_91_02_02 to pick up headers in sbndaq_artdaq_core so the NTB decoder will work +* 2024-09-24 Thomas Junk : Update this PR so it can be merged cleanly Merge branch 'develop' into feature/trj_ntb_decoder +* 2024-09-24 Ibrahim Safa : Merge branch 'develop' into summed-adc-interface +* 2024-09-24 Henry Lay : Remove old fcl +* 2024-09-24 Henry Lay : Silly Henry - we need that fhicl +* 2024-09-24 Henry Lay : Correct order +* 2024-09-24 Henry Lay : Attempt to add it everywhere it would be needed +* 2024-09-24 Henry Lay : Add base fcl for CRTGeoAlg +* 2024-09-23 Brinden Carlson : Update T0 default to be in configuration fcl +* 2024-09-20 Mun Jung Jung : caf fcl for data +* 2024-09-12 Kyle Knoepfel : Accommodate changes to recob::Hit +* 2024-09-10 Henry Lay : Remove default gain assignment within alg +* 2024-09-09 Henry Lay : Tidy up +* 2024-09-09 Henry Lay : Prevent implicit casting +* 2024-08-26 Henry Lay : Ensure ToF modules compile - and that their behaviour is unaffected for MC +* 2024-08-26 Henry Lay : Update GeoAlg to receive some parameters from the CalibService rather than fcl - and change how we handle inversion to reflect what the decoder does +* 2024-08-26 Henry Lay : Add temporary calibration service for supplying pedestals & timing offsets +* 2024-08-26 Henry Lay : Ensure default behaviour is retained for MC +* 2024-08-26 Henry Lay : Ensure TPC matching algorithms compile +* 2024-08-26 Henry Lay : Create fcl for running standalone CRT reconstruction on data +* 2024-08-26 Henry Lay : Updates to Tracks for data - Save both timings, use T0 for clustering & account for ToF when chosing candidates +* 2024-08-26 Henry Lay : Updates to SpacePoints for data - Save both timings +* 2024-08-26 Henry Lay : Updates to Clusters for data - Allow use of T0 for clustering decisions +* 2024-08-26 Henry Lay : Updates to Strip Hits for data - Reference to ETrig, allow flag 1, correct for second rollover +* 2024-08-26 Henry Lay : Make event display usable on data +* 2024-08-26 Henry Lay : Move declaration of particle inventory so as not to cause issues when running on data +* 2024-08-26 Henry Lay : Ensure CalibAna module still compiles +* 2024-08-26 Henry Lay : Update CRTAnalysis module to work on data +* 2024-08-06 Thomas Junk : also build the NTB decoder module +* 2024-08-06 Thomas Junk : NTB Decoder and data product + +sbndutil +--------------------------------------------------- + +* 2024-10-31 Brinden Carlson : Merge tag 'v09_93_01' into develop +* 2024-10-31 Brinden Carlson : Merge branch 'release/v09_93_01' +* 2024-10-31 Brinden Carlson : Update to larsoft v09_93_01 +* 2024-10-01 Brinden Carlson : Merge tag 'v09_91_02_02p01' into develop From ec865e1d6105872edff1ad036a218b479d2376d3 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Thu, 31 Oct 2024 11:43:26 -0500 Subject: [PATCH 0976/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 1d7d1d5cd..22f701b1b 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_91_02_02p01`. | Weekly release. | [Release Notes](ReleaseNotes099301.html) |`v09_91_02_02p01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910202p01.html) |`v09_91_02_02`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910202.html) |`v09_91_02_01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910201.html) From 820add7115a60c37d4250861776c92b3a3349200 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Thu, 31 Oct 2024 11:43:40 -0500 Subject: [PATCH 0977/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 22f701b1b..490dc3d23 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,7 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- - |`v09_91_02_02p01`. | Weekly release. | [Release Notes](ReleaseNotes099301.html) + |`v09_93_01`. | Weekly release. | [Release Notes](ReleaseNotes099301.html) |`v09_91_02_02p01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910202p01.html) |`v09_91_02_02`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910202.html) |`v09_91_02_01`. | Patch for SBN2024A. | [Release Notes](ReleaseNotes09910201.html) From cf96709ac2b44115a8f71382b12041296a629704 Mon Sep 17 00:00:00 2001 From: Dom Brailsford Date: Fri, 1 Nov 2024 14:01:48 +0000 Subject: [PATCH 0978/1437] Update Viewing_events_remotely_with_VNC.md --- sbndcode_wiki/Viewing_events_remotely_with_VNC.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md index f2295abba..99f3bfc85 100644 --- a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md +++ b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md @@ -9,6 +9,14 @@ toc: true Viewing events remotely with VNC ==================================================================================== +Source the VNC setup script, and follow its instructions: + source /nashome/d/dbrailsf/setupVNC.sh + + + +OLD INSTRUCTIONS +==================================================================================== + (Taken and adapted from Dom Brailsford DUNE wiki Instructions) VNC provides you with a remote window to easily view GUIs from a remote @@ -167,7 +175,7 @@ fully display the TITUS window within the VNC one. -Old (ancient) instructions +ANCIENT INSTRUCTIONS ---------------------------------------------------------------------- (Adapted from the 35 ton tutorials by Karl Warburton) From f0653532a990bf38d1a72bc701df4c64791b7cc2 Mon Sep 17 00:00:00 2001 From: Dom Brailsford Date: Fri, 1 Nov 2024 14:02:23 +0000 Subject: [PATCH 0979/1437] Update Viewing_events_remotely_with_VNC.md --- sbndcode_wiki/Viewing_events_remotely_with_VNC.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md index 99f3bfc85..b17f5e4d1 100644 --- a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md +++ b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md @@ -9,7 +9,8 @@ toc: true Viewing events remotely with VNC ==================================================================================== -Source the VNC setup script, and follow its instructions: +Source the VNC setup script, and follow its instructions:** + source /nashome/d/dbrailsf/setupVNC.sh From 303d0afeab2097d7f07a7acbe2fc36dc34635f02 Mon Sep 17 00:00:00 2001 From: Dom Brailsford Date: Fri, 1 Nov 2024 14:03:12 +0000 Subject: [PATCH 0980/1437] Update Viewing_events_remotely_with_VNC.md --- sbndcode_wiki/Viewing_events_remotely_with_VNC.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md index b17f5e4d1..5fd9aea3c 100644 --- a/sbndcode_wiki/Viewing_events_remotely_with_VNC.md +++ b/sbndcode_wiki/Viewing_events_remotely_with_VNC.md @@ -9,10 +9,11 @@ toc: true Viewing events remotely with VNC ==================================================================================== -Source the VNC setup script, and follow its instructions:** +Source the VNC setup script, and follow its instructions: source /nashome/d/dbrailsf/setupVNC.sh +If anything is unclear, shoot me (Dom Brailsford: d.brailsford@lancaster.ac.uk) an email or slack message. OLD INSTRUCTIONS From dba810486991d7ee5515d1f815bd3fc237699c5a Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 4 Nov 2024 11:33:17 -0500 Subject: [PATCH 0981/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a948d6eb2..75cd0918d 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -56,6 +56,13 @@ SBND MC | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| BNB + Cosmics - w/o diffusion | MC2024B | v09_91_02_02 | 50504 | CV reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_50k_sbnd | +| --- | --- | --- | --- | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | larcv | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | +| --- | --- | --- | --- | caf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_caf_flat_caf_sbnd | | BNB + Cosmics CV | MC2024B | v09_91_02_02 | 316623 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | From fbaba677dae0761b872957fc4db695e86821eb91 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 7 Nov 2024 12:26:08 -0600 Subject: [PATCH 0982/1437] Create RestartGrafanaPodman.md --- sbn_online_wiki/RestartGrafanaPodman.md | 72 +++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 sbn_online_wiki/RestartGrafanaPodman.md diff --git a/sbn_online_wiki/RestartGrafanaPodman.md b/sbn_online_wiki/RestartGrafanaPodman.md new file mode 100644 index 000000000..a4b13334e --- /dev/null +++ b/sbn_online_wiki/RestartGrafanaPodman.md @@ -0,0 +1,72 @@ +--- +layout: page +title: Instructions for restarting the Grafana monitoring system. +hero_height: is-small +--- + +### Introduction + +Grafana is a powerful, open-source analytics and monitoring platform used for visualizing system and application metrics. It operates within a Podman container environment, a daemon-less, Linux-native tool designed to develop, manage, and run containers. In this setup, the Grafana container is managed by the `grafana` user's SystemD service. + +### Restart Instructions + +1. **Access the Grafana Server** + - SSH into the Grafana server as the user `grafana`. + +2. **Stop the Grafana Container** + - Execute the following command to stop the Grafana container: + ```bash + systemctl --user --no-pager stop grafana.service; systemctl --user --no-pager reset-failed grafana.service + ``` + +3. **Start the Grafana Container** + - Start the Grafana container and check its status with the following command: + ```bash + systemctl --user --no-pager start grafana.service; systemctl --user --no-pager status grafana.service + ``` + - A successful status should appear as "active (exited)". + +4. **Troubleshoot if Necessary** + - If the reported status is not "active (exited)", check logs for errors: + ```bash + journalctl --user --no-pager -u grafana.service --since '1 day ago' + ``` + +### Example Status Output + +```bash +[grafana@grafana-host.example.com logs]$ systemctl --user --no-pager status grafana.service +● grafana.service - Grafana Service Stack + Loaded: loaded (/home/nfs/grafana/.config/systemd/user/grafana.service; enabled; preset: disabled) + Active: active (exited) since Thu 2024-11-07 11:25:57 CST; 41min ago + Process: 1319110 ExecStart=/home/nfs/grafana/grafana-podman/grafana-service-ctrl.sh start (code=exited, status=0/SUCCESS) + Main PID: 1319110 (code=exited, status=0/SUCCESS) + Tasks: 64 (limit: 297397) + Memory: 64.4M + CPU: 3.288s + CGroup: /user.slice/user-15111.slice/user@15111.service/app.slice/grafana.service + ├─1319541 rootlessport + ├─1319547 rootlessport-child + ├─1319560 /usr/bin/conmon --api-version 1 -c 8d0d591203fea354a26a52b54d85a11a7c64719c36f7d27d5ff703e551460080 -u 8d0d591203fea354a26a52b54d85a11a7c64719c36f7d27d5ff703e551460080 -r /… + ├─1319796 rootlessport + ├─1319820 rootlessport-child + ├─1319831 /usr/bin/conmon --api-version 1 -c 8630ecc31122c61c0f1259f158fd17fc82d209290c9d798ede3d2524621f2290 -u 8630ecc31122c61c0f1259f158fd17fc82d209290c9d798ede3d2524621f2290 -r /… + ├─1319992 rootlessport + ├─1320016 rootlessport-child + ├─1320029 /usr/bin/conmon --api-version 1 -c 2a01a018ffc62e858d35b2faf8bfd66c5e4c858dde4b192d423e1c334b9e3e2f -u 2a01a018ffc62e858d35b2faf8bfd66c5e4c858dde4b192d423e1c334b9e3e2f -r /… + ├─1320196 rootlessport + ├─1320220 rootlessport-child + └─1320233 /usr/bin/conmon --api-version 1 -c 1316b287affa0aa6f8b35d583fcdc8a30f147f3ff4b7d5ba4645d368cc0081b1 -u 1316b287affa0aa6f8b35d583fcdc8a30f147f3ff4b7d5ba4645d368cc0081b1 -r /… + +Nov 07 11:25:56 grafana-host.example.com podman[1319914]: 2024-11-07 11:25:56.712591134 -0600 CST m=+0.233395234 container init 2a01a018ffc62e858d35b2faf8bfd66c5e4c858dde4b192d423e1c334b9e3e2f (imag… +Nov 07 11:25:56 grafana-host.example.com podman[1319914]: 2024-11-07 11:25:56.716768157 -0600 CST m=+0.237572257 container start 2a01a018ffc62e858d35b2faf8bfd66c5e4c858dde4b192d423e1c334b9e3e2f (ima… +Nov 07 11:25:56 grafana-host.example.com grafana-service-ctrl.sh[1319914]: 2a01a018ffc62e858d35b2faf8bfd66c5e4c858dde4b192d423e1c334b9e3e2f +Nov 07 11:25:56 grafana-host.example.com podman[1320095]: 2024-11-07 11:25:56.897164726 -0600 CST m=+0.075058683 container create 1316b287affa0aa6f8b35d583fcdc8a30f147f3ff4b7d5ba4645d368cc0081b1 (im… +Nov 07 11:25:56 grafana-host.example.com podman[1320095]: 2024-11-07 11:25:56.857748296 -0600 CST m=+0.035642259 image pull 249f59e1dec7f7eacbeba4bb9215b8000e4bdbb672af523b3dacc89915b0…:1.24.0-alpine +Nov 07 11:25:57 grafana-host.example.com podman[1320095]: 2024-11-07 11:25:57.154115638 -0600 CST m=+0.332009601 container init 1316b287affa0aa6f8b35d583fcdc8a30f147f3ff4b7d5ba4645d368cc0081b1 (imag… +Nov 07 11:25:57 grafana-host.example.com podman[1320095]: 2024-11-07 11:25:57.1772537 -0600 CST m=+0.355147655 container start 1316b287affa0aa6f8b35d583fcdc8a30f147f3ff4b7d5ba4645d368cc0081b1 (image… +Nov 07 11:25:57 grafana-host.example.com grafana-service-ctrl.sh[1320095]: 1316b287affa0aa6f8b35d583fcdc8a30f147f3ff4b7d5ba4645d368cc0081b1 +Nov 07 11:25:57 grafana-host.example.com grafana-service-ctrl.sh[1319110]: Container stack started successfully. +Nov 07 11:25:57 grafana-host.example.com systemd[2382]: Finished Grafana Service Stack. +Hint: Some lines were ellipsized, use -l to show in full. +``` From 479710ea178aa9434dee7199b3f6a05ee6c9ffb0 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 7 Nov 2024 12:28:02 -0600 Subject: [PATCH 0983/1437] Update grafana.md --- sbn_online_wiki/grafana.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/grafana.md b/sbn_online_wiki/grafana.md index 43da7d49a..78cbe6876 100644 --- a/sbn_online_wiki/grafana.md +++ b/sbn_online_wiki/grafana.md @@ -1,6 +1,7 @@ # Grafana monitoring Instructions -* [Restart Grafana](RestartGrafana.md) +* [Restart Grafana](RestartGrafanaPodman.md) +* [Restart Grafana (old)](RestartGrafana.md) * [Configure runrecords_monitor.sh](RunRecordsMonitor.md) * [Configure disk_monitor.shh](DiskMonitor.md) * [Add a monitoring panel in Grafana](MonitorPanel.md) From 60c4ef4b4828893b946a49c763b1c187fb17d07c Mon Sep 17 00:00:00 2001 From: mattfcs Date: Fri, 8 Nov 2024 19:02:40 -0500 Subject: [PATCH 0984/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 75cd0918d..a2bfe29a1 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -25,7 +25,7 @@ More information about the workflow can be found at the [SBN Analysis Infrastruc How to access the samples -------------------------- -MC sample datasets are declared to the SBN SAM instance which is acessible to both SBND and ICARUS collaborators. All samweb commands should specify the SBN instance with `samweb -e sbn`, following are some useful commands: +MC sample datasets are declared to the SBN SAM instance which is acessible to both SBND and ICARUS collaborators. All samweb commands should specify the SBN instance with `samweb -e sbn` Nov 2024: MCP2024B SBND currently only on SBND SAM acessible using samweb -e sbnd, following are some useful commands: ### Definition commands - checking definition files: `samweb -e sbn list-definition-files {definition}` From b2cf3b39a275d801f682517a4f7c482a63139e97 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Tue, 12 Nov 2024 11:25:44 -0600 Subject: [PATCH 0985/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 069bc163e..7836a6dc6 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -35,18 +35,17 @@ source /daq/software/products_dev/setup #dev area ``` 3. Setup the version of sbndaq we are based. To see a list of the different available versions, use ```bash -ups list -aK+ sbndaq -qe26:s120a:prof +ups list -aK+ sbndaq -qe26:s131:prof ``` -It's recommended you use the latest available version (this is currently v1_10_01 as of 4/2024) with e26:prof:s120a as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_10_02 as of 11/2024) with e26:prof:s131 as the option. Then, to set up, use: ```bash -setup sbndaq v#_##_## -qe26:prof:s120a +setup sbndaq v#_##_## -qe26:prof:s131 ``` Quick detour: - `e` qualifiers specify the gcc compiler version - - `py2` qualifier specifies to use python2 (default is python3) - `s` qualifiers specify the `art` suite version - `prof` specifies optimization flags in the compiler, while `debug` specifies debug flags. - + If you want to just run from there, that's all you need to do! ## Build/install local build @@ -89,7 +88,7 @@ mrb g *Note:* you may need to do some setup of your github account with proper SSH keys. See [here](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh).) *Note:* This will pull from the HEAD of the develop branch and include any changes that may have been pushed since the last tag (`v#_##_##`) was created. Alternatively, if you want to build the tagged, working version that was set up in the previous steps, directly: ```bash -mrb g @ +mrb g @ ``` - -### Getting the production proxy (the new method) +### Getting the production proxy A much easier alternative to getting production-role access is to use -the production proxy certificate that is pushed to the gpvm several -times a day, courtesy of the SCD. -As with the old-school method, the certificate is only accessible from -the sbndpro account. +the production proxy certificate that is pushed every 4 hours to the gpvm +by the Managed Proxy Service, courtesy of the CSAID. +The certificate is only accessible from the sbndpro account. Here is some fine print, sent from Kevin Retzke when this method was setup on the sbndgpvms: @@ -119,7 +118,7 @@ setup on the sbndgpvms: > 4. Someone with the production role must be designated to have the service certificate registered under in VOMS. The certificate has to be registered to someone. At time of writing, the -certificate is registered to Dominic Brailsford. +certificate is registered to Mateus Carneiro Da Silva. To use the certificate, make sure the following environment variable is set: @@ -129,4 +128,4 @@ set: At time of writing, the .profile file for sbndpro should setup the `X509_USER_PROXY` environment variable so hopefully you don't need to do anything! Once `X509_USER_PROXY` is set, you are able to submit -production jobs (no need to use the old-school method as well!) +production jobs. From da972bad4b0b3538c8673ad0b7dec2c3c141c823 Mon Sep 17 00:00:00 2001 From: Matteo Vicenzi Date: Thu, 30 Jan 2025 10:20:30 -0500 Subject: [PATCH 1019/1437] add triggerdb documentation --- sbn_online_wiki/ICARUSTriggerDatabase.md | 133 +++++++++++++++++++++++ sbn_online_wiki/sbndaq_Wiki.md | 1 + 2 files changed, 134 insertions(+) create mode 100644 sbn_online_wiki/ICARUSTriggerDatabase.md diff --git a/sbn_online_wiki/ICARUSTriggerDatabase.md b/sbn_online_wiki/ICARUSTriggerDatabase.md new file mode 100644 index 000000000..1e2a9a2c9 --- /dev/null +++ b/sbn_online_wiki/ICARUSTriggerDatabase.md @@ -0,0 +1,133 @@ +--- +layout: page +title: Online Trigger Database in ICARUS +hero_height: is-medium +toc: true +--- + +## Event-by-event trigger database + +The ICARUS trigger database stores all the event-by-event information saved in the trigger fragments. +It lives on the ICARUS online cluster alongside the other PostgreSQL DCS and slow controls databases. +They primary host is currently `icarus-db02` (with a backup on `icarus-db03`), but it is also replicated offline in read-only format on `ifdbdaqrep01`. + +POT accounting requires matching ICARUS events with IFBEAM events. +While LArSoft events store the same trigger information, events are not saved sequentially in the DAQ output files. +This is both due to the different data streams and the number of EventBuilder processes (given `n` EventBuilders, event `j` is packaged by the `(j%n)th` one). +As a result, POT accounting would require accessing all the files in a run just to sort the triggers by time. +The trigger database was developed to simplify these operations in the offline, providing a easy way to query and sort the collected triggers. + +The scripts supporting and automatically filling the trigger database are in the following repository: +https://github.com/SBNSoftware/icarus-trigger-database. +The initial implementation was developed by [Justin Mueller](https://github.com/justinjmueller) at [https://github.com/justinjmueller/icarus_runinfo_database](https://github.com/justinjmueller/icarus_runinfo_database). + +### Data flow + +The database is currently filled by reading the trigger boardreader logfiles. +This happens daily via cronjobs running on `icarus-evb06`. +A more robust implementation is being planned by having the database filled directly by an analyzer module in the main DAQ code. + +- Trigger logfiles are created for every run in `/daq/log/boardreader/run*-icarustrigger.log` +- Every day `backupTriggerLogs.sh` creates a compressed copy of any new logfile in `/home/nfs/icarus/TriggerLogBackup`. + - Only logs older than 1 day are considered to avoid ongoing runs. +- Every day `runFillTriggerDatabase.sh` checks that backup directory and fills the trigger database accordingly. + - File names already processed are skipped, unless the file size has changed. + - Stub files are skipped. + - The log is parsed for trigger data strings. Information missing in older trigger packet versions is defaulted to `-1`. + - Logs and errors are saved to `/daq/log/triggerdb/`. + +### Tables + +## Trigger Data + +The `triggerdata` table encapsulates all information that exists at the per-trigger level. It corresponds to the contents of the trigger TCP/IP packet. +The primary key is the pair (`run_number`,`event_no`). + +| Column | Type | Description | Default | +| ---------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- | ------- | +| `run_number` | integer | DAQ run number | | +| `version` | integer | Version numbering for the trigger string data | | +| `event_no` | integer | Event number | | +| `seconds` | integer | Local time stamp of the global trigger (seconds) | | +| `nanoseconds` | integer | Local time stamp of the global trigger (nanoseconds) | | +| `wr_event_no` | integer | Event number from the White Rabbit | | +| `wr_seconds` | integer | Time stamp of the global trigger (seconds) | | +| `wr_nanoseconds` | integer | Time stamp of the global trigger (nanoseconds) | | +| `enable_type` | integer | Enable gate type | | +| `enable_seconds` | integer | Time stamp of the enable gate (seconds) | | +| `enable_nanoseconds` | integer | Time stamp of the enable gate (nanoseconds) | | +| `gate_id` | integer | Number of the current gate | | +| `gate_type` | integer | Number encoding the type of gate (1: BNB, 2: NuMI, 3: BNBOffbeam, 4: NuMIOffbeam, 5: Calibration) | | +| `gate_id_bnb` | integer | Gate ID (BNB) | | +| `gate_id_numi` | integer | Gate ID (NuMI) | | +| `gate_id_bnboff` | integer | Gate ID (offbeam BNB) | | +| `gate_id_numioff` | integer | Gate ID (offbeam NuMI) | | +| `beam_seconds` | integer | Time stamp of the beam gate (seconds) | | +| `beam_nanoseconds` | integer | Time stamp of the beam gate (nanoseconds) | | +| `trigger_type` | integer | Type of trigger logic (0: Majority, 1: MinBias) | | +| `trigger_source` | integer | Originating cryostat of the trigger (0: Undecided, 1: East, 2: West, 7: Both) | | +| `cryo1_e_conn_0` | text | 64-bit word with the status of the pairs of PMT discriminated signals (LVDS) for the EE wall | | +| `cryo1_e_conn_2` | text | 64-bit word with the status of the pairs of PMT discriminated signals (LVDS) for the EW wall | | +| `cryo2_w_conn_0` | text | 64-bit word with the status of the pairs of PMT discriminated signals (LVDS) for the WE wall | | +| `cryo2_w_conn_2` | text | 64-bit word with the status of the pairs of PMT discriminated signals (LVDS) for the WW wall | | +| `cryo1_east_counts` | integer | Counters of other activity in coincidence with the gate (other potential global triggers in the event) for the East cryostat | | +| `cryo2_west_count` | integer | Counters of other activity in coincidence with the gate (other potential global triggers in the event) for the Wast cryostat | | +| `mj_adder_source_east` | integer | Enumeration of trigger source in the East cryostat, specifically adder vs. majority (1: adders, 2: majority, 7: both) | `-1` | +| `mj_adder_source_west` | integer | Enumeration of trigger source in the West cryostat, specifically adder vs. majority (1: adders, 2: majority, 7: both) | `-1` | +| `flag_east` | integer | Flags true if a trigger was detected in the East cryostat | `-1` | +| `delay_east` | integer | Delay of the East trigger from the start of the beam gate in FPGA ticks (default: 90) | `-1` | +| `flag_west` | integer | Flags true if a trigger was detected in the West cryostat | `-1` | +| `delay_west` | integer | Delay of the West trigger from the start of the beam gate in FPGA ticks (default: 90) | `-1` | + +## Trigger log + +The `triggerlog` table contains metadata associated with each trigger log file. +It is used internally to keep track of log files that have been processed already. +The primary key is `log_name`. + +| Column | Type | Description | +| ------------ | ------- | ------------------------------------------------------------- | +| `log_name` | text | The name of the log file | +| `stub` | bool | Boolean tagging the log file as containing no actual triggers | +| `file_size` | integer | Size of the file on disk | +| `run_number` | integer | Run number corresponding to the log file | +| `processed` | bool | Boolean tagging the log file as processed/not processed | + +### How to access + +#### Online version + +Direct access to the database in the online cluster is reserved for filling operations through the shared `triggerdb_writer` user. +This is handled through the script configuration in https://github.com/SBNSoftware/icarus-trigger-database/blob/main/config.json. + +For interactive access from `icarus-gateway03`, type: +``` +psql -W -U triggerdb_writer -h icarus-db02 -p 5434 -d icarus_trigger_prd +``` +You will be prompted for a password. + +Please contact [Donatella Torretta](mailto:torretta@fnal.gov) or [Matteo Vicenzi](mailto:mvicenzi@bnl.gov) for the password. + +#### Offline standby replica + +Access for querying and analyzing trigger data should be performed via the offline read-only replica on `ifdbdaqrep01`. +This is handled through the shared `triggerdb_reader` user. + +For interactive access from any `icarusgpvm` host, type: +``` +psql -W -U triggerdb_reader -h ifdbdaqrep01 -p 5455 -d icarus_trigger_prd +``` +You will be prompted for a password. + +Connection details to be used for Python/C++ connection libraries are: +``` +db_params = { + 'dbname': 'icarus_trigger_prd', + 'user': 'triggerdb_reader', + 'password': '******', + 'host': 'ifdbdaqrep01.fnal.gov', + 'port': '5455' +} +``` + +Please contact [Donatella Torretta](mailto:torretta@fnal.gov) or [Matteo Vicenzi](mailto:mvicenzi@bnl.gov) for the password. diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 64fb478ef..5f20b6962 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -22,6 +22,7 @@ Database instructions * [Configuration DB Instructions](configurationDB.md) * [ICARUS configuration list](ICARUSConfigurationList.md) * [run history database instructions (ArtdaqDB, UconDB)](run_history.md) +* [Event-by-Event trigger database](ICARUSTriggerDatabase.md) Workshops From 772f07dc8ff554c85c3f2d37f0cdc75220efc1cd Mon Sep 17 00:00:00 2001 From: Matteo Vicenzi Date: Thu, 30 Jan 2025 10:26:31 -0500 Subject: [PATCH 1020/1437] small fixes --- sbn_online_wiki/ICARUSTriggerDatabase.md | 2 +- sbn_online_wiki/sbndaq_Wiki.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/ICARUSTriggerDatabase.md b/sbn_online_wiki/ICARUSTriggerDatabase.md index 1e2a9a2c9..082857599 100644 --- a/sbn_online_wiki/ICARUSTriggerDatabase.md +++ b/sbn_online_wiki/ICARUSTriggerDatabase.md @@ -119,7 +119,7 @@ psql -W -U triggerdb_reader -h ifdbdaqrep01 -p 5455 -d icarus_trigger_prd ``` You will be prompted for a password. -Connection details to be used for Python/C++ connection libraries are: +Connection details to be used for Python/C++ libraries are: ``` db_params = { 'dbname': 'icarus_trigger_prd', diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 5f20b6962..018e62d6d 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -21,8 +21,8 @@ Database instructions --- * [Configuration DB Instructions](configurationDB.md) * [ICARUS configuration list](ICARUSConfigurationList.md) -* [run history database instructions (ArtdaqDB, UconDB)](run_history.md) -* [Event-by-Event trigger database](ICARUSTriggerDatabase.md) +* [Run history database instructions (ArtdaqDB, UconDB)](run_history.md) +* [Event-by-event trigger database](ICARUSTriggerDatabase.md) Workshops From 6ad2b95c8e534b0ec61cd7dc07dc50e235ff6f61 Mon Sep 17 00:00:00 2001 From: Matteo Vicenzi Date: Thu, 30 Jan 2025 10:39:08 -0500 Subject: [PATCH 1021/1437] fix headings --- sbn_online_wiki/ICARUSTriggerDatabase.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/ICARUSTriggerDatabase.md b/sbn_online_wiki/ICARUSTriggerDatabase.md index 082857599..53b9910e3 100644 --- a/sbn_online_wiki/ICARUSTriggerDatabase.md +++ b/sbn_online_wiki/ICARUSTriggerDatabase.md @@ -38,7 +38,7 @@ A more robust implementation is being planned by having the database filled dire ### Tables -## Trigger Data +#### Trigger Data The `triggerdata` table encapsulates all information that exists at the per-trigger level. It corresponds to the contents of the trigger TCP/IP packet. The primary key is the pair (`run_number`,`event_no`). @@ -79,7 +79,7 @@ The primary key is the pair (`run_number`,`event_no`). | `flag_west` | integer | Flags true if a trigger was detected in the West cryostat | `-1` | | `delay_west` | integer | Delay of the West trigger from the start of the beam gate in FPGA ticks (default: 90) | `-1` | -## Trigger log +#### Trigger log The `triggerlog` table contains metadata associated with each trigger log file. It is used internally to keep track of log files that have been processed already. @@ -101,9 +101,11 @@ Direct access to the database in the online cluster is reserved for filling oper This is handled through the script configuration in https://github.com/SBNSoftware/icarus-trigger-database/blob/main/config.json. For interactive access from `icarus-gateway03`, type: + ``` psql -W -U triggerdb_writer -h icarus-db02 -p 5434 -d icarus_trigger_prd ``` + You will be prompted for a password. Please contact [Donatella Torretta](mailto:torretta@fnal.gov) or [Matteo Vicenzi](mailto:mvicenzi@bnl.gov) for the password. @@ -114,12 +116,15 @@ Access for querying and analyzing trigger data should be performed via the offli This is handled through the shared `triggerdb_reader` user. For interactive access from any `icarusgpvm` host, type: + ``` psql -W -U triggerdb_reader -h ifdbdaqrep01 -p 5455 -d icarus_trigger_prd ``` + You will be prompted for a password. Connection details to be used for Python/C++ libraries are: + ``` db_params = { 'dbname': 'icarus_trigger_prd', From 017e9e8f5c3845cd4e791560120023af73dbc45c Mon Sep 17 00:00:00 2001 From: Matteo Vicenzi Date: Thu, 30 Jan 2025 10:50:18 -0500 Subject: [PATCH 1022/1437] fix typo, links --- sbn_online_wiki/ICARUSTriggerDatabase.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/ICARUSTriggerDatabase.md b/sbn_online_wiki/ICARUSTriggerDatabase.md index 53b9910e3..84090b0ad 100644 --- a/sbn_online_wiki/ICARUSTriggerDatabase.md +++ b/sbn_online_wiki/ICARUSTriggerDatabase.md @@ -15,10 +15,10 @@ POT accounting requires matching ICARUS events with IFBEAM events. While LArSoft events store the same trigger information, events are not saved sequentially in the DAQ output files. This is both due to the different data streams and the number of EventBuilder processes (given `n` EventBuilders, event `j` is packaged by the `(j%n)th` one). As a result, POT accounting would require accessing all the files in a run just to sort the triggers by time. -The trigger database was developed to simplify these operations in the offline, providing a easy way to query and sort the collected triggers. +The trigger database was developed to simplify these operations in the offline, providing an easy way to query and sort the collected triggers. The scripts supporting and automatically filling the trigger database are in the following repository: -https://github.com/SBNSoftware/icarus-trigger-database. +[https://github.com/SBNSoftware/icarus-trigger-database](https://github.com/SBNSoftware/icarus-trigger-database). The initial implementation was developed by [Justin Mueller](https://github.com/justinjmueller) at [https://github.com/justinjmueller/icarus_runinfo_database](https://github.com/justinjmueller/icarus_runinfo_database). ### Data flow @@ -98,7 +98,7 @@ The primary key is `log_name`. #### Online version Direct access to the database in the online cluster is reserved for filling operations through the shared `triggerdb_writer` user. -This is handled through the script configuration in https://github.com/SBNSoftware/icarus-trigger-database/blob/main/config.json. +This is handled through the script configuration in [https://github.com/SBNSoftware/icarus-trigger-database/blob/main/config.json](https://github.com/SBNSoftware/icarus-trigger-database/blob/main/config.json). For interactive access from `icarus-gateway03`, type: From e539b0ce85411bc2c06c24339120df92eae331ee Mon Sep 17 00:00:00 2001 From: Thomas Wester Date: Thu, 30 Jan 2025 13:09:45 -0600 Subject: [PATCH 1023/1437] update TITUS build instructions --- sbndcode_wiki/TITUS_Event_Display.md | 62 ++++++++++++++-------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/sbndcode_wiki/TITUS_Event_Display.md b/sbndcode_wiki/TITUS_Event_Display.md index e34306f4e..6b9ab51c5 100644 --- a/sbndcode_wiki/TITUS_Event_Display.md +++ b/sbndcode_wiki/TITUS_Event_Display.md @@ -85,40 +85,11 @@ The length and font size of the scale bar are both customizable under Edit->Pref ## For developers: How to Build and Install your Copy of TITUS -### Current official, pre-2024 version - -TITUS requires `gallery` and `sbndcode`. You can obtain both pulling the -ups products. - -It also needs PyQt and pyqtgraph. You should be using python3. In -python3, you can `pip install pyqt pyqtgraph`. - -Then - - git clone https://github.com/coreyjadams/gallery-framework.git - cd gallery-framework - source config/setup.sh - make -j - - cd UserDev/EventDisplay/ - source setup_evd.sh - make -j - -That\'s it! - - -### Preview build, 2024+ +### Current version, 2024+ (cmake) Setup one or both of `sbndcode` and `icaruscode` via UPS, then also set up `cetmodules` via UPS. -TITUS's build system will be switched to `cmake`. Currently, you must check out a feature branch `feature/twester_gui` - - git clone https://github.com/coreyjadams/gallery-framework.git - cd gallery-framework - git checkout feature/twester_gui - - -Next, create a folder for build files and run `cmake`: +Create a folder for build files and run `cmake`: cd /path/to/titus/build cmake /path/to/gallery-framework -DCMAKE_INSTALL_PREFIX=/path/to/install @@ -126,7 +97,7 @@ Next, create a folder for build files and run `cmake`: cmake --install . -As before, TITUS requires Python with ROOT support and several additional packages. If you have set up `sbndcode` from UPS, you should already have Python with ROOT support. From there, additional packages may be installed via `pip`. To stay organized, it is recommended to first create a virtual environment via +As in previous versions, TITUS requires Python with ROOT support and several additional packages. If you have set up `sbndcode` from UPS, you should already have Python with ROOT support. From there, additional packages may be installed via `pip`. To stay organized, it is recommended to first create a virtual environment via python -m venv ~/.venv/titus source ~/.venv/titus/bin/activate @@ -138,3 +109,30 @@ Then install the additional packages with `pip install `: pyqtgraph scipy pillow + +Finally, launch TITUS with + + evd.py + +### Legacy, pre-2024 version (make) + +TITUS requires `gallery` and `sbndcode`. You can obtain both pulling the +ups products. + +It also needs PyQt and pyqtgraph. You should be using python3. In +python3, you can `pip install pyqt pyqtgraph`. + +Then + + git clone https://github.com/coreyjadams/gallery-framework.git + cd gallery-framework + source config/setup.sh + make -j + + cd UserDev/EventDisplay/ + source setup_evd.sh + make -j + +That\'s it! + + From d1c38a99f0ce0ba01c4fd998c183648f0853d527 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Tue, 4 Feb 2025 18:29:25 -0800 Subject: [PATCH 1024/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 7facabe67..ad6ee44e0 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_93_01_02p01`. | Weekly release. | [Release Notes](ReleaseNotes09930102p02.html) |`v09_93_01_02p01`. | Weekly release. | [Release Notes](ReleaseNotes09930102p01.html) |`v09_93_01_02rc0`. | Weekly release. | [Release Notes](ReleaseNotes09930102rc.html) |`v09_93_01_01`. | Weekly release. | [Release Notes](ReleaseNotes09930101.html) From e6159c7d6bdd1873bfeba8d5389367327fd7f650 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Tue, 4 Feb 2025 18:32:10 -0800 Subject: [PATCH 1025/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index ad6ee44e0..c155741a9 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,7 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- - |`v09_93_01_02p01`. | Weekly release. | [Release Notes](ReleaseNotes09930102p02.html) + |`v09_93_01_02p02`. | Weekly release. | [Release Notes](ReleaseNotes09930102p02.html) |`v09_93_01_02p01`. | Weekly release. | [Release Notes](ReleaseNotes09930102p01.html) |`v09_93_01_02rc0`. | Weekly release. | [Release Notes](ReleaseNotes09930102rc.html) |`v09_93_01_01`. | Weekly release. | [Release Notes](ReleaseNotes09930101.html) From 609acea8eee93a72b14c4f9e227b359c3f8388b8 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Tue, 4 Feb 2025 18:32:40 -0800 Subject: [PATCH 1026/1437] Create ReleaseNotes09930102p02.md --- .../Releases/ReleaseNotes09930102p02.md | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09930102p02.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09930102p02.md b/sbndcode_wiki/Releases/ReleaseNotes09930102p02.md new file mode 100644 index 000000000..6c563a0c2 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09930102p02.md @@ -0,0 +1,122 @@ +--- +layout: page +title: ReleaseNotes09930102p02 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.93.01.02p02 | 04 Feb 2025 | [ReleaseNotes](ReleaseNotes09930102p02.html) | +| --- | --- | --- | + + + +sbndcode v09_93_01_02p02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_93_01_02p02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_93_01_02p02/sbndcode-v09_93_01_02p02.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v09_93_01_02p01 to v09_93_01_02p02 +- PR #566: Update reco1 to use channel status service + - **Description**: Allows Cluster3D to find bad channels through the channel status service. + - **Labels**: bug, reco1/reco2 + - **Reviewers**: + - **Assignees**: bear-is-asleep +- PR #563: Integrate CVN model + - **Description**: Integrate CVN model. + - **Labels**: tpc + - **Reviewers**: bear-is-asleep + - **Assignees**: yangtj207 +- PR #609: CRT Data Timing (Cherry-Picked) + - **Description**: Replaces PR 582 given that branch has various other PRs merged into it. I've cherry-picked (hopefully all!) the relevant commits from that branch onto this one. > As promised at the CM. This PR updates the low-level CRT reconstruction to provide a backup timing reference. Currently the SPEC TDC event trigger is used with the backup being to leave the CRT time in it's raw-est state if the TDC product/channel cannot be found. > > This PR adds a first backup of using the PTB HLT before ultimately falling back to the raw-est state if neither can be found. It also makes use of an object provided by @lynnt20 to document this decision on the event. > > This branch makes use of Lynn's PMT Decoder PR (541) and Max's PTB Decoder PR (581) so the diff includes the updates from those branches too. + - **Labels**: crt, reco1/reco2, data + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #604: No SCE reco2 fcl for Calib workflow + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: + + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-02-04 Brinden Carlson : Merge branch 'release/v09_93_01_02p02' +* 2025-02-04 Brinden Carlson : Update to sbndcode v09_93_01_02p02 +* 2025-02-04 Bear Carlson : Merge pull request #604 from SBNSoftware/linyan-calib +* 2025-02-04 Bear Carlson : Merge branch 'develop' into linyan-calib +* 2025-02-04 Bear Carlson : Merge pull request #609 from SBNSoftware/feature/hlay_crt_data_timing_cherry_pick +* 2025-02-04 Bear Carlson : Merge branch 'develop' into feature/hlay_crt_data_timing_cherry_pick +* 2025-02-04 Bear Carlson : Merge pull request #563 from yangtj207/feature/tjyang_cvn +* 2025-02-04 Bear Carlson : Merge branch 'develop' into feature/tjyang_cvn +* 2025-02-04 Bear Carlson : Merge pull request #566 from SBNSoftware/feature/bearc_badchannelservice +* 2025-02-04 Bear Carlson : Merge branch 'develop' into feature/bearc_badchannelservice +* 2025-02-04 Bear Carlson : Unique larcv filenames +* 2025-02-04 Henry Lay : Merge remote-tracking branch 'origin/develop' into linyan-calib +* 2025-01-28 Tingjun Yang : Merge branch 'develop' into feature/tjyang_cvn +* 2025-01-28 Bear Carlson : Update CMakeLists.txt to v09_93_01_02p01 +* 2025-01-28 Tingjun Yang : Merge remote-tracking branch 'upstream/develop' into feature/tjyang_cvn +* 2025-01-07 Henry Lay : Fix signedness +* 2024-12-19 Henry Lay : Unnecessary +* 2024-12-18 Henry Lay : Turn off produces line if not referencing +* 2024-12-17 Henry Lay : Add timing documentation to ana module +* 2024-12-17 Henry Lay : Correct use of allowed PTBs +* 2024-12-17 Henry Lay : Add bookkeeping object +* 2024-12-17 Henry Lay : Remove debug prints +* 2024-12-17 Henry Lay : Re-add debugging statements +* 2024-12-17 Henry Lay : Improve time referencing - check TDC is closest to event header and add PTB HLT backup option - final fallback is to just remove any PPS rollover in the CRTs but otherwise keep the T0 raw +* 2025-01-27 Brinden Carlson : Merge tag 'v09_93_01_02p01' into develop +* 2025-01-27 Henry Lay : Update file description +* 2025-01-15 Rachel : Merge branch 'develop' into feature/bearc_badchannelservice +* 2024-12-16 Bear Carlson : Move channel service to services fcl +* 2024-12-16 Bear Carlson : Move service map changes to services fcl +* 2024-12-09 Tingjun Yang : Clean up code. +* 2024-12-09 Tingjun Yang : Change lcvn::SBNDPixelMap to lcvn::PixelMap. Use association to get slice information for each pixel map. +* 2024-12-08 Tingjun Yang : Add cvn to reco2_data.fcl. +* 2024-12-08 Tingjun Yang : Loop over all slices. +* 2024-12-08 Tingjun Yang : Add cvn to MC workflow. +* 2024-12-08 Tingjun Yang : Reduce printouts. +* 2024-12-08 Tingjun Yang : Use slice by default. +* 2024-12-08 Tingjun Yang : Add FileCatalogMetadataSBN. +* 2024-12-06 Brinden Carlson : Update reco1 to use channel status service so cluster3d can find bad channels +* 2024-12-01 Tingjun Yang : Add subrun. +* 2024-11-30 Tingjun Yang : Set t0 correction to true. +* 2024-11-29 Tingjun Yang : Add nhits for each plane. +* 2024-11-28 Tingjun Yang : Use new version of sbnd_data. +* 2024-11-28 Tingjun Yang : Add truth variables to ttree. +* 2024-11-28 Tingjun Yang : Use model in sbnd_data. +* 2024-11-26 Tingjun Yang : Add fcl file to evaluation cvn and save a tree. +* 2024-11-26 Tingjun Yang : Specify inputs and outputs names. +* 2024-11-26 Tingjun Yang : Add a new version of tf_graph that takes inputs as an input. +* 2024-11-23 Tingjun Yang : Save cvn scores in a TTree. +* 2024-11-23 Tingjun Yang : Add analyzer module to test CVN performance. +* 2024-11-22 Tingjun Yang : Add a method to make pixel map from slice and evaluate it. +* 2024-11-21 Tingjun Yang : Add association between lcvn::SBNDPixelMap and lcvn::Result. +* 2024-11-21 Tingjun Yang : Reorganize fcl files. +* 2024-11-21 Tingjun Yang : Add association between recob::Slice and lcvn::SBNDPixelMap. +* 2024-11-20 Tingjun Yang : Add new fcl files for cvn training. +* 2024-11-20 Tingjun Yang : Initial commit of Varuna's work on CVN. + +sbndutil +--------------------------------------------------- + + From 7570660df32bb8c09cf8b2e6ff0f60cbed39e3a0 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Mon, 10 Feb 2025 18:47:05 -0600 Subject: [PATCH 1027/1437] Update Spack-Development-Tutorial.md --- sbn_online_wiki/Spack-Development-Tutorial.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbn_online_wiki/Spack-Development-Tutorial.md b/sbn_online_wiki/Spack-Development-Tutorial.md index 6d850a813..d165da4c0 100644 --- a/sbn_online_wiki/Spack-Development-Tutorial.md +++ b/sbn_online_wiki/Spack-Development-Tutorial.md @@ -54,15 +54,15 @@ This step ensures your current working directory is the environment directory yo Add the `sbndaq-suite` package and its specific configuration, and set up the `sbndaq-artdaq` package for development: ```sh -spack add sbndaq-suite@v1_10_03 s=131 %gcc@12.1.0 arch=x86_64_v2 -spack develop sbndaq-artdaq@v1_10_03 +spack add sbndaq-suite@v1_10_05 s=131 %gcc@12.1.0 arch=x86_64_v2 +spack develop sbndaq-artdaq@v1_10_05 ``` -- `spack add sbndaq-suite@v1_10_03`: Adds the `sbndaq-suite` package version `v1_10_03` to the environment. +- `spack add sbndaq-suite@v1_10_05`: Adds the `sbndaq-suite` package version `v1_10_05` to the environment. - `s=131`: Specifies the package variants or options. - `%gcc@12.1.0`: Specifies the compiler to use (GCC version 12.1.0). - `arch=x86_64_v2`: Specifies the target architecture. -- `spack develop sbndaq-artdaq@v1_10_03`: Marks the `sbndaq-artdaq` package version `v1_10_03` for development, meaning its source code will be added to the environment for easy editing. +- `spack develop sbndaq-artdaq@v1_10_05`: Marks the `sbndaq-artdaq` package version `v1_10_05` for development, meaning its source code will be added to the environment for easy editing. ## Step 5: Concretize the Environment @@ -139,7 +139,7 @@ Here are some useful examples of interacting with Spack after setting up and wor To list all installed versions of the `sbndaq-suite` package with detailed information: ```sh -spack find -lpvf sbndaq-suite@v1_10_03 +spack find -lpvf sbndaq-suite@v1_10_05 ``` - `-l`: Displays package hashes. @@ -152,7 +152,7 @@ spack find -lpvf sbndaq-suite@v1_10_03 To load the specified version of the `sbndaq-suite` package into your current shell environment: ```sh -spack load sbndaq-suite@v1_10_03 %gcc@12.1.0 s=131 +spack load sbndaq-suite@v1_10_05 %gcc@12.1.0 s=131 ``` - `%gcc@12.1.0`: Specifies the compiler version. From ec533c36ca958b001835790239f09d2db2ee4470 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Mon, 10 Feb 2025 18:48:34 -0600 Subject: [PATCH 1028/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index bd5e2223e..d2d792539 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe26:s131:prof ``` -It's recommended you use the latest available version (this is currently v1_10_03 as of 11/2024) with e26:prof:s131 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_10_05 as of 02/2025) with e26:prof:s131 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe26:prof:s131 ``` @@ -88,7 +88,7 @@ mrb g *Note:* you may need to do some setup of your github account with proper SSH keys. See [here](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh).) *Note:* This will pull from the HEAD of the develop branch and include any changes that may have been pushed since the last tag (`v#_##_##`) was created. Alternatively, if you want to build the tagged, working version that was set up in the previous steps, directly: ```bash -mrb g @ +mrb g @ ``` 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�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 }-)a@4 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

S; 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 FO#lcbWIzA_ literal 0 HcmV?d00001 diff --git a/ExperimentDocuments/icarus_pride_logo_transparent.png b/ExperimentDocuments/icarus_pride_logo_transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..af9fd4810ab00788e77d8aba7ad79b4f2c56de52 GIT binary patch literal 535760 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 z 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ⅆ zn3Fo`=pgbD&%{cGTLYGt_LPq4U~K&-3m9)%#9KU{{!*VDc=Z*RSSAQKF&H7)UMpT) zUM27>!x2Pv6E!JmO@$;)NquuTTkV#Kk0`w2m9KPrhp;sn(X1JiBM5!sI7Wb38k_JA zilmuiurVP@FHMb!B@G!nL6uHz$wjV( z?(#BWXp!sL2AtX)gDT_EjNEg%G~E#;*=a9OJ8i_B;RKxAYf(@fT5)fBCNtAelME$3E4pM5P@3px_=Z zVMksW`6bU0&npi~)u7}i)&k$F9!P*{YEHDnEEkw&<1kL4WTSxbxPbuo|L50peSc*G_m)pw*zJ~i-_e} z;)EoWrB)Z;u|jyWDW}#>nDfx9(Q0;4f#KFB^_DrJ(>SNqXrclqPg+`j^@0l#F?Ng4 z^LW#n-U6!3h9frDO^l^kYqPax@RoYBgZQ9iPd5uPpz@CYp*$&wI+EU zgXZ|YPpjP`h#G(}*w|uY^Aw^v%geh^%}l+nS!X<%psKVxEt16O1N|_gQ8Ph~(O^JS zTS7cY(!4Az4E!3krU@6N)08+fI8!YQ*f?QxsMj;6bvBz)Z#MB&@jYcSv;NjIMgt*m&Zs(3Sx z@_a239!N>|z+xy2I3svL^qlwYE9rK~HY}(7CI4QZM`}r4K&RQn3S?nyciIayUy2b` ztt2{gAax5eXHi4I{e4kYt`2SCoZym4LW}5Y5oyUCCbSw+uB0<{uD-Wu--U2J$9hoM zFDAQ+RnHgI>r!UE%QZJoT+eyXPn-Xh{@ZmkFBt=@-_F_gicX)o|EJGUEgk#n`q#>y zSN#_1aI<#7s3d5Lq9mFB%VPhTSMO8l|D2tn9159RRkkDl7llx?uY)knsuouXDuUpuAWd6>D;0RQZ1SKM- zc-wqo{%NuQNcGtjagG9l;h+{?rT%97{4+RD@w;liY>u}-ll?hNM(3BlO8<*@nTycq zg1Y-$B4$4B^ZvV$m&&}Ue*Z!Y$8&F8GO3)|zPF7XqIe%~`}}vf8?XBPD=K^i6G$=t zDWMdU-@l-3lI`cORP9sR*E7t&>iCz?k;?j4hwZkkRXz_$l}thTIXjtlBFkT=?a*C^ zDJYb*f?+B)wcF2O@!JdC-Z_6)-Oh%g<;6hfgyjwkck|8r^{&H*&rLtS0(HfWH<~2& z9S08RPu+GK>zgJRaP`$!>(Mjt7H?PYIx8nk^m*Tny#h0-yeO#ezv}HB@Az&N;Gg{1 zKQ{SVgx&oUo<^JFP zS;(xAuGa3dwYgyqMc~=>L4|#*D}3$?UqHp9-`-;H#TSAIfixJ6Vn7MJjHSLYHKb|I zu_vBDP z6V$CBZ#16KZMPll$S0^ps6eAxC&{Msi-5ayu5AtRopb92p|O*QGMgnV?^>}tcVuvk zD6ZjqCJ2(I8NQ#Ps*J{C!q9hFArDPWs6|30au(AxVPk9PGB194I7Gh3>YlxpRY?Lq z^Vv^Zabmkcx4VR=@Zduamh2_Fcda6^IpzI+hcq5o0jj|8xN$Cfo=>xtmbwt07ux>g zDV}(xg6591ywjd{J8r@qv9Jx;xeQ$jpJjq%rzCE9IiBEhIfO@0OWA{1c3USnFl2>5ndHH7+%<>%MH!qd*lz^h} z&BH?_t|t^!&8Xk844^fEg4KgU^<)P$4PmqIdS3y1^m222QbLT zU^E7VRFy2ZNW3RLer!T67hG@wVHg5JHl84%&E3cki6>K|h4W#l+q3UhuM_xw86XG( zd!N}jX6)1!H=bIf*D;2Y-FsJ=o;(RT{F8rlGr#oj?m~gz`_O0k!M}MiB0|01APlY0 zZgaFrme@Rs{07sJIqVniTjq!U{*4I2ul@Sn-2bOv1mN-u`pn`9D2&sbT2w<-2tx-+ z%at^q68a&CFq(|1g*F!g@en@*a@yTC%|-|DU^twzYtP;iUbViq>D1-Ph)ekJs4~bjAvx>a z7;KuLNmy@i-Ua*0h23f!{bJzzhM#r}9!X}{=VWIF zRj88Sh<8T&UhxDiE=SB+1u8(}A|+q2w#?ZBiX!+q$D5P|ep-P{oeqVN3PZuOv0vso zM9$oQoReMM2(+lsugGc0ws$DSCW>V}uh1{`A*y?h6Tpx&FhLZVEy=g99XaEcAqyqF zl`*QYIu!3&GJJ@*!p)K&qO@OJGNhb4^LMU7XG(KbA|WZnK#DQT7sjcq&?p2r)LYzm z3i}J=Keu(-_{-uxD#aYB+CT047xwcC6G@S~&t3oX@}gM2hsYW2OVxfUhEbWjGQUJF z%)bhsp*Xq{5jC@wc_(MEFWc8Z+5bxN_b;3Orv*i}jeo8SFdj#weFppUY^0p_{kN}w zw#~oFnNfTfEkslDD&fqT?F$R)F!S%vbF{w`S>9>SC$jwRgKlb7889mAim%NS`;9l= z$U_f3bVdi%RDoQTz9%Ka&i$_q)mL8a*%zk%TKV?X+TluBCl zMuW$WIE-m|DCG<5Z%*swSwWt7cm)j{9=Yat6$$7$wz*p5XU>C1FvnlI2&tB^3;UT< zPn(SGo$vYEJo!Yg;s}Uy&c%KI;?K<4uQz5W!fUR4lGj}MC@R9MUj4slcefVp7ZvJK zamNeC1&`5Io6r3D%MpRU__Is+^wIM{lKvd-Q8V6ay$FC0pMykCu(wg9DzEVU2 zbQ$r@L7-J&?zQ#5ezPpq*|~$g4T&mo@D+VI%Y<6CUKPAl4O7n3&A4^D-G_5i0dgFH z@~FryM|pxUroh}q`(}<6^Mu~nsI18y-j&CP)7rgs;5^d;D&WZtvVC92<@-4FkCjSB zG#5`!^~!>m)D8SZR_;DfWj?XG`LYO$_CfF4pVx6HKFlOv{*Bcx%R>pf_EGBmBJ&~6 zC|AB%y0({rl#f&-wqvi!NHtVbg=tTXqgc-+SV&)Ag>RRhDt3^DYV+mqVw=hs(@=aS z|Euroq@B2c@0DLo)FFAOe2TS`YTRPmJT?io0-Uuqf3_anVmUIVboRD=FwI<_C@u^( zpBNWMTdw6ef30)m)$a85YsQt*x}CV|?;GDyj>g{MT66kJ^06UTews&>9ntbA#k}NX zUk^Kh{QcM=d~tCUb-=_kvH1xNDSBhSfhpFg-LYE*?yzMk&=Ve2KTFSq-`ntN$x$VGg zSg!!LRJa(wT7w_Vig;{IKL`8O#>H-{%fNYk#R4C;Kt6 zA^c!dq(=@vX}mtcBY6EonCf?%^U^wVJZ16XDJ@2)bAr*o_&H%}eCAS&qX-ShIq6ir zcDb~dU|tHW5nHBiTv@!a_Vk)8K>qa;F|`6Rmnc-`k6?t224Cd6V$l^cI=X(h=tJVy ze9cl?r6e`<(7&vgs#fn~4QWUE32rrvas`daOM4%ufp6R$XVLn!EXr?^nZ+zBNf{IO zo;rn%b5^{R*%;<&$xId6d1JyZkH}~;MWpWynp_Xsn7iO+S3ymw2(fOo*DBrePj!L@CL6Mzw{{`UNMHK9*} zuUKX19bU&nm0)0WLQAJIyQazcotgHOc@gU`u3wlXrF4dx)=h)y_)EJUDUJ$H$-Mmz zIujeBiR;J!iZ>kC=#!Xz$cpen2|U7(dTpcs6qVFSa>|9))Q3(lLN54|<#5*|HAMwJsga$G zALLNKqhwJI4}t}y*Jj)P=R?z2j3;IZL3N1`n(8wnnh4Ktvv&X+6@d>RpW_r(;6Is(%u%eoMed>gWxwSSZKIPYbpK29}j+_ zH67`VG-+I*Xsw%n!{%Gg`<7DqCercoTcU5EB&4LivfW8U5IJ>L-ZLVP`5oJD!%EayW=-ZOz{5nwik9ayM_8 zJFZs~zGFPTZJ!F?MAXS^{O;(+7o+GTPuVV?1c^L(Aw5OqznV^ho|L^;VcKU7X% z*5S(jKvm^UwnHI_rL%2pu)!@7Jpa=ppO)_Dge4fePDicnBK#z)vpX{+iP(KHk9m!- zd$iH~Hyd+mGtTelF1?$r3|pH<-6Ea^39?UHAc%j;{;{11K7ag^`!15&EGcuI_z#-1 zmB#Fj*2qGBGA#Uhv@q(n{mW1`07Uz8XLtyT3P)VimE&AzdV`$6Bv^)qkfmuKZ_H^e z+IV^U5pWd<2Dfh@qUFEDSOwg&8!-k(gL`$R(L^G*Rj ziG$BFUOtzn{^;Uhg{dk_)5UE+z5|=d2EbCtdd71A74yl^$p!NGOlw&DjXh$bn zNIQogLnEuqB!9CA`sj_4j`I^WG+Dg>;Otm9L&*Gsz`UUL+hvN1eyZx31!ffCrTQ8o zQ?^PIcmDPk6zbfLdXo5M(1#yo1RXJ^i4BHl(f>uo1-35^P9cOYgwf_bm9u5~@Mkf-)wU%$ihJ)( z$>BP~;>=Dhn?daxzK6L5qc4Ml;9}xlO1j(7u@ZsXoreSLzhhkO@03C8s29RlN!i?w zYaVq}qTiVFd;*TTa5yK=>|AjV2QX|}d+ACX(wAF0&uduffly9Zk3^h%8oTloijdpU zl_g=wn-DkKtEu<8XHFF3?sB+T4W+OvYRme=+VINbW{0`%7R)et{Fq)%7Z~_<>aZ#N zpE=`*dH@2lT+dJwmYHJDRU~wo3^kF>HN9)?7(dQw zY>8b+Qwky!ZL1U>X>0GTXZc^D z&_z3L1s!2<9Vm3WUOK!cfC|qORC`8slMHw?4pwMy@3GmOk&^W}Yv8`&hSX7i)bU*v zz)LsvY7hx}|5Ifm)9Fu|eb|FqnVR_5h*oVW6SEB)l$)Gg=J?(1L`V6uf1KRpjZxAZ zzes1DvxSE&9Q$u>*eZGAB4U47!I4?Ul`rtD9So8+Mxo2_`%A36-HwOcAh@f-?=OAO zraR-hC&i9at6l%Xo14WFjnwO8f8rcxn=IUzKem%%L@yg69Cth?%A#a|NrF?l$5Q35 z2O}KAFButI*=+hcYXmMVsKK{2NVZCSe6OzP@d{Dygn2u=WpzsVieSgDX1{E+I%CM| zxF$-T-wA8GD_k4X+zBk{b8Wpta5YC!yWNeXY76`6z@N8Zo~EvE#*~t`a-lpX&x6z) zhug%G*O!J8z;GGZ2+j$ruInbn#H(5!0Z$_y#Bm@{2W{WqKL>)3Ev1%P5Oxbi>P}C~ zj=cY(jq)pBy}?P_*KmATZo<4Cy>Z^Dm^j(CS81`@H1EabZo#Z47976G>26%kuHYqc zHe!$*D_{H=;imS9f?WYuo}r?T!`t6FGiv3DC9~=qxeAKO%?aqRbtqhc>hD;;hu5Xe zdB0)+Ja=`Qj6un=(-vaTob7JEBCd_+B8K_P?@-GyyxhE~8d>Rn9|sN=V`KBujdDbh zywZT{24eDRcP{1$4YaNr|5U`Tb*bdL*)SC~-@JegBWS~Cz%(|;-DFrdiFs{yK7 z@_U^Yn=yN}p4%R!r|$_9s@1sA?Ogw8fqpXN4Ls=|jAt29^N;tYt-+ndj49u1TM1_; zTTmKxH=AHjO_@-xix55ZTF*1yyF2-;Zfy*$s-UW|*3L(MTy1pM%(nuv9oO+TvdvpB zFK_;sIv6x{oz{P!WS&q}ev_}q!wLoXyHEjF4d)+0i&RqqlinS-6RHT--*qzQSa8QI z(53rNrv4})lkzfKx3;xCiskt( z`PV@j@;av^H^~PNWC}MA??>4mnGRn~?Id1(^E&gIB~Nb?p9464Uig<^n4*&Im=T=t z_9X54$Gq9480)P(V)S6uu?X45Gy87rG0QFUzS5nYQoS0PqzueUl%%u?K&jPU&8wl$ z)#P(BL{(kL9@5hI$KPEOEi9qRe;&bn3kbZ2fYPvo)J0I*^U;{ev`AI(>#wvEuZ!Cq zBu4jvj?Tk6Y58#gYXhrK5yx;@N>EFRB_ifw*O_5wTSgzaIz=KS#7Ii-moW6kAt~h% zxD5ONa))Au#D*77FF$rf)Ysv(LEL8uq?ORfB^;r&9-qd0pFvlL61V0{i)|~8T|Xow z93hOG_?RNNoQiRK=B(*n>ER;7*?t4JPH+28I?DlAB>c4O1sJ!_`E_Ef4f-jLy_lDP zj7Q?V8w5sZAnRW`q6PDV1#|eXY|D?bm~NEI+T{2xw$X>?-Sr2rpzMsl2+g6OXGh_jQ(2*|?4e%nF&l%4@*d zgfF)y#V%2{{9*qrr)A|0cgS7x91`LmvTv65A?EfYeoD6UUv$E4L~1bH^M^pl^Pxvi z_+co?oM(a z+12@7>%No<8QSi{Xi5~+qAtVV|KAJnJiH0iwM_v&dIJ^YU;)f0lKiKL1bPhW&U>qi z0aVaU6=>(L0B2}N$AXM*>;8`htD+2V4~INAPQ7FSIL?hu1a~()3gs|~;$RVE6V{{g zFRct8=ZBIrXSxYhNX%Q``0t-OH-m_>$!jE3%wo8qeF`nU*Xm$ax_b95{^dSvC~yd> zVCu(LNmUncPvin_zLZ5)+xVB4@5Z}1MoumeblH+0j==4|4?K8)@}h`;k4e>k>ve(a z-K~QXdU^YWyBkPU7UyYH43xhV^t#UNKCHTY#Dk3Nr{g1qpldz}kSQxOxplNFHacL1 ztiG8BY<>snwGa4+A`{vw_PRQ)wYnJ;{;MdgREa>$7UNAzPj7pKp#S_prMi3!h%BhC z{#HIu7MZ^7Tk*l-4%I%*pwy4w3&T;VahXmPe~2lOkl(w?kzGYQJAe5?&`f|%+a}A} z={)18Pt7I5sOk%3fVMNw=5Zl`sx+CEj+C6-n5nZy#?Cj~TAUMUj!boTDsCsk5*SRg z7Py#O{h&(Jv3WjwY+&p6#g}xdMS131hK$n`puE4;a08E& zuPQ&#VPbR|N1eW9(Ora~cUSuI0PX-zzfY&`wU%X)N=R(a#h3Uz?~s~Q4#s!lw}2Ql zo}e9v8c85!^m}<-t5i}P+MBBoul9-ZRm5gn06a=)2s&BeS?r5WFPvt1(`l^yU|Wt2 z>kcCm3LR_v>c^`v9$YmFu@Jic{8pEsR$Gy{B6R|^SSvgFphp~hEW8bZu2ZT-(Cm`ewIT$c)&Vbr>N@~b@1wgr zuB9J7nWfnj+@I~)9WQj?Dpzqy2@=T(hUMmdmAneco*XsHt8#lRyW9yC3cPBxb&I*o z0zwDcdkzml#lMWk+1R~-FI+IdXYCX#_D#-VK*IN{q00bf;N7Hm&*pKiN2X>K)7RFXPTp#M_eU~y8p>P-(GwwZaD8X*oMzDT{9?f zYmodI$3@T`>fN=Q(0Y*NsF9NYg0M{vEsI@*+z3Q>J9}rV2dvE%UvwRsU9>++8pBh; ziY!dyXr4lbCTpd!jpo_dtG-G-9brj`qnlo(g^VkG=P>NKkSdH$2bGHt2mJh&XUaHL z?Z@cQDz2;?h2l)bU&*9~+lM%d44=fk0LkxoTW#CNM|QVE{D0n1Mlvx*K#v z5P1^=3X-^dI;Z{}EJ=#{LL1FX8K=mEPq2TLNUu|b5&gSy)sw&ycgT}&vo&{d0sBKv zJZ`vr&8V;r)SL)tnR4-0L}0s6dHUoavTG0pRE(iXtysJ@2 z`XJYJMRq%%E@`*`oFczi=H7!5RC{kx8ku4vo0iof1Io&|Z28Qz(ot)EH{$d#hZ2+` z*?Y1=m-MOD_q0K=XtHkI4+rt*AQp=(qb^t8H5<{f&TjMaT}!n?X^ni4B-l{vDM2fesJQAnU}WDBQm zX#5iWJ?{`tzErR5B=P872AK+jt_+~wsW!b}8HtcqkvS~yT9#TgAZ-2ot42w)d+>~X z7|l0-L_O>pLyh#|-dAzjdX5Iv`EpA~AOG}JLSw7OydJjCfP&v0POq+lMGdoVpgww! z-;Y_0Vbb=v1rHdzBZ{&Tw*T-lU2quymtwe|__~F1K_fo0Ne1{0)IL614a&L#7E7na z2zF|D?sN*Hqc^6I!BQLva{W! zn=h%ZsbQiB3}s3<-$vlcMfRCHZT96>i~VETgk?yKTi|P2Bkpk1ufKL*@3Difu2#7V zFisBo&?$%MwsvxsfluHmIqJ18_Eb<@ml5$22hmyjV-ri(@lJ^^4z7Z7H+kl1tZ^zE z_od^E^AXrQjBYRXa3Daqhj3ysfAW!f0F3Ej_GR+7xn#P>hm2?N;XOi~j%E%p6#QIe zZC@&a(bJ&EaRKCFDs;!MW8sE5W%?T%RTwpDs zfg{lD*1F5YkC>QnGSaAY17wq5=zmA}K#z0OY$0GzE@O4yxAyxYn@_fh9LX{P_L9(L zgnsUi#0S7G=&$~?k8Y4X2=@h`?#le(3>4n?M!NuQ`)sr^#Q|&%8xsY5c8|^}N)B}C z*2Cy!FbDq?lFAmE_;j2linDa^WtAH_T0l89;@fBVAQOx%T_T+lB5drLsUskhUm8?u zrqFnYhix#y%rg~Zw0W^B6MC7jY3Q_)0DjvfJ_F=VzW@Ha^X*xPYV9s08)@r1CRhDW zn1^dG0dk~!g5GgFvFLt34>0ZhH~9v7IjJ%XTR~3%uI>7);ZxzDCHSvdJ;Pp3Q@Fg> zwZqYQfaiU>5FdEOv8nq@vr< zwM=yd592MQWe2-&9pP=rBw(9xJV-& zA^_YRB9(sNj{7E?4*uy*kyLrO?7BsQqYk)a-2eHN%0B9M$J(xf8H5WdLFwxqunC%4 z8Tg=J<|VP%ae^G#y-uZOA zYzE*5>hI)YMaX)NF(oKy`$;5&YZgzRKC58RlCG}9)73Y2j&0LNXoQXM)8Dyf4&$nF zh6($g1T8FLXOPHRl(;y49#gT9*&6N3ShGZEQS)?;)4TBS<62X{Qcct->Qq&J_XDhERxJu)Y`nI*j>k(ir8r6#AiMQN zUEJanXaB|fjg%Q0cil%VqQic4uQic@g&Mr2fcI8tqmQ_C+GUG{I|;Z%S_GX+uv|5A z1BnvEr;6s2an{s1or{W`zFug=u}5}a6hx%^#-m%uiEmGEumVMXA1W2? z*X6jle@;2eGRW~15)QGv);@U=3S7<3R}2yg@FPL>;Q0^MF4G-w&x@TQ%{RFDqNk0c zbl5)ER=1$dZ~ssy+d}oBb978bfS6zRhc{5#KyU!WeEU)r6A1K(GP~qk-dx^*6a|8A zC&l(B#Q;JZPZKU(dQ>;7Kx}A>x7Sm5+`~J7>uwxWf%DA&qCMN&PN?%l z4DiL;kb7L|2^ynCr5&cIokLVK8RYXgY2J|0Fm%N}#Nv{h&TXX%nA$?)1w@ww3;M() zE%@MMzX9HgU0f-aMg03I+NobypGfuJ`d{rm|9T8&M9e_iZb0*}gKa)f&Q9IiSz~62 zbcMN9kXXQ@7zkc{YY1{L5gv&5RI>@eDHv^$cys3hSiWPH<{XTv24B9y&)Xsrq@{`W zH)BL^A$L_w!rM`a%azT;rFgY}G^wG%==?J3WJ|I;|L{JQ#+|gDK-IL-YD+VYeT%g- zSMt1BK*QcU?FdU%ljqJdZBi;sg}L?{z>>dV7TVAkQ4uCj{inIDXJxx@&;l2=DSc6@ z;NKU%qX!L@B}-nuVOg3GQ%MQNcXWRyoq~IN=pB&|cLyhvSZn;SNKu-GgI$INa*;lK~%o4pax3p0&<qW;))~2k^Q}QG5J2CK)9?pJlMHtUumVW@pN><|c z@=v9SB}1=2URZp!(}qSp9-~^z)+cj#;jLO$Y2%*;>0=og25y-OsDgfODWjOl>)?>6 z_+PYYljYjr+V~&7D{ep@OEn4|Pj<&%Bx4KtS2h*Q7O{w3zh=Kpdv^AXbDD5?kX|MN(bm*uoxj4uIYdB3umhyW=dmyD6K?v7h_i=@{=(fK)c0m4O>>Dqv*Zf)vPryF&`TXxpfb;NU2nW zpr=dsfM?x?4R3-Ji%8LIbWJ>EwHWg{Ch098KkYGpA_7s001d!CM2`NQ>!*Q_$2X~- z;i8h~vH3fl$EVAQw|ruR=3v23iYWsRptEaf45j%T($DbLytfjAA2CM4Cwcd(h(GJ(&tTcw8= zmJ+U@sW9-cNYLZuS3th7kG|z*HUJu+YVENybn~1XvrM4=yD8{lWeNjYq9d_3#c}!H zyFpq9d?VkFa{*H#KV{}We-RrV*nJ8K1@Gxj$zBTw+9p#6%(P@Rx#IHTkA1W4!?W!C ztjfDf+ZlrXzF%|PXQ?H9n}>s^*^=bCRXKJGf>Za#YUVo6P0P|V@aVp?gv>HZDfGaZ zG2^86m@3q2`OQAlI<2Ocb#|K&D`Y3S^Wm>@boCcfzXIgkbfGeR52!h1*)_2h^dXyi zq)gIp7#Wdqg%|as-v$m;0D(db>ik#)^f}LWgeK$zg%AQZ6TpNn{{K=L$A7hJz~_S_ z`e=G7VSz(T?l!`!PtGFt6G1R-$e$BcE|70>Dhby-BK+VGw9Rw^hG=l zq;N^}%4UNgk%VD{uJnQprczs&jBBe+rdE>N9)j^ukkUrFzxdN8t zk)Qj`AIp0S7HxQ`GV7E*nLe_|;FrLJ5S_3uMNeJf=%LaH@>ST~)^pqiE~!dVAb=D> zuTkHDVmQRro>W(SI)w#;GT&9caURJ+kn*3Qvw_9IGwkq>Sl`*Knni|lWiMXZHV41; zM}1vI>3g~B(UGS3HC7VOg?8N{j0j5Zek_MdX)Cr%dFclz8ckKV-xZ5>@6=;f)z+Y` z?#)z9mP}yBnp0GeJReEFJuz=`gt>@<5V`#?ri?R4*w*8y*p%8kb8aUax`KW}oD)=H zp?>^F^hG*pWDJN_{-2n%Pn4?)MtxdUqZ1Cf{O+?9T*@wK>`2Xy*!VJkGLlv*0T-t7{s9rpZKw{`iUeK;MEjj2+rx{mE1F4#=8}@7U~<3h9sn`b}@vi|}sIh~HvZ<>suLKEy&)%nx z<61i$I`3gxo^iE)=@!loks{E&=5rjb_E-HY7Kn|Lc^KERDY8mu68~rvPIb%c=D6Emqgow9?LqXlwGJ7B~;}l9S)vw`j!^HMb_08w| zaNMcyb9HD#Q>#0td0@OT1Y+pzb~Ci(21=fH=N<4An7%6de0L+Wz-#y7`zThsMF_ok z=ne83gFUI>n9J==$d85#@WGULT&s=G!?jm>ULSE?U2Re+IvXzP2UHwtq?8d0*(5Rs zt1WWE;7U6V+@P=stqP3Y9uoK>7TYcR zeK9YRaCVb9mgn7BQOaQ#MUe^;wLCCGxRgtovI%C4(nvvjjK$B`bIxLN?eKA3A{mep z$)pCdxwww4oP`*vvFpl3lcE<2HrwxUYo|G%^>wOwBV$PNJ5)q#;rzMA~uHYoLxM6?r{tt!!28!CNM!%^7G^UBIC>H8RE` zg;)aUDFz486`FauJ9{g(m;2SwmcagBra=L-Ool3Y|G`5Ny>6cSelq-iAN314cLAHCViIfgPpk-)(o!VSfe)eUlt^gB8G6N&4-bD# zF@Dg4Y5J36E2(+N-i^SBUGV)d1Fg%n-Ph(XQ-jh}Qjs$GsA_rgnhSkD70h3T>6!yq zO^xBixAQ5udFvaH7)FqEEstK@WW4nbIyTIb65%Z=@LHp1EO=}MvkmyH_q6X-pWQ|C z@LJzqHz5%1fq|!^L?SmGWW1~zl)iP-_5xYjEJo+^iQ%N-B(i0KoTF%J*qq%UyOf z_xNUD^-<@*Wxx3K<1XG#?IS@!y3(rd|1K6Lr6T_J<8ICZHvInkG4uB?l+s-f9kZx6O@iU+Mp%( zb(7o}77AQ*nxE%bx-7r2u|~NL2jCn$9Ma*(08(HPk)zSi!5G30 z`On^L=w2LW&{=UJ4kD_2OGx96FQ+)ra1ClCg?^B;F>uR0nJ)q17Kb)w-*{|OnqGkz z0#o|rnvmpJB!HZCfEK|6b0Z>ypS+o{k&%TyD+>TQop!R z3vd~1?qY!+Sa5C9RF=*SQCKKT82H3=jL!uv=MeBv-YCK2WJ*TLV^7!xLbAjD)AJ%2V`hN){8osX!yWsw0v-!_yapt+l|4x5vP3 zvAo+Bnk%uoKwCVt<;xaskJqw=uVz=m*O99juZOwbIW3SL>LM2CU9_^#fe>dQ%fzH* zylh&osxA62E|d{*CJDzR%z@pFS2a3}^`J!o_}-p<0j6SjjBjL=--Vmr-}uOPo-7Hz z1PTfY;-!S5Cd?R_As6UfDBp(~TYFdf%ai)+%b(Q5k%Gy+eU}bjq{z zv>`?I8X{Hxitmj^|DnyzLXdp6d>+om!z#vaHSE)@bu4vwFi-ZoM2+E+=(-DAi|Bcs8>69S~ ze}qC8K=!1#iid3ETZVQhU!+W@=Kj<6F3U9a#a|9Sq|~3w-<*Kh;`0B{mz_=!2GPIR z-bER=n-2b?MX2WDP8|He@~e~Ud>$L&%o*$IW4lVz38k9H=nj~_*syLq^wXlfuu_>U z$r-bz9Aa`Dlj^zI_EhnjTT)RmZNZ&id!${*YMfuP!+@*`Ea3d_m?SvWD`MM8mgzgw z;14<~em1;L2v@oLwOslKidZd7E|*paCY3K4F4bFezRBKUAjvsU1PnTJbU~SD-NIAf zi(g$dd9OqahCV4!!=o`%`RZFjCm+?XscjOUrru_o#kc?JCq>ma`V%+*VEt#4{9!_E zmEcq+A7Vi+S26g39aWX&a{x3l^c0oyfWKt1rF(a>{o>$ig?6}LwmQlBNA|>Q>^-8_ zGg*Sa4qKw;PzijoDW+g)#d{yYGP9CsG$)r_HxBqwC!U@0g*0h#Hh~=@$~pQ<8(1_O z$%ZF~S5=-#FG=s{+{yUrh}F1Eowj==(TZW0^t%EGU}@8A3j&JL=92jjWo{r+h+N8q z#X5UO`Y@qb?>pZoTvbOH@lk5l{7A@l&(`TYr6`5Dn`!!k;L{Ky9F_PzP3Sh9 zjv>G`*lemH_({n`Xzi}NW$fUBDY~8tnWH65Gh9dePs<mOXO=_1g9fKD>!*6*DSv4@fXuV~&eGSnr(1;Po zZc67o%vKZebRovGJU_Dhu}ZI#s$}Bf|8eQUrT%Z%cZ6o!RKqNyYz{P)D3>|%_sv+J z>DYYKoQ?XecUxKnuhtp6ZxL+yiW{qOOO?Q-Pv#Uw6)U4%uyTsWE&D-V(M-ep_TBN zO#pMrf1N9HX<~jX>`>wo`A~(xg8D}T;9&^z6ity8<#8L}rH|us3ByxhtFL!5{Hu&%-d%|0f{>-}BVrDW?ZcAlGOjV5mA{u|x5XMZDo$3%3sU ze&Hkt{G9%#KVz; z(yL1zE}+Z`(Ae?6`%(vatdqtygWROwECOFY$ZnPBgQCo#CFuqzZCW4gyjp)~#@&b3 z@{>O4Q4tMP&D&3CrN1MTM;yBwFhfdgE{@5k>7s=M?X@NB;wAV{MqaHQz6o#3JsKaJ z9fW!upyoWGWbP77PTi&?$)<&}j+1Xy7fzu2w7P!8pm2V+`3ZW8ZOo8yeknW$-d!db z7)^kOE^9hAgNhB;Al^zLNWcYN-$1n*Wf*w}tAk zfV-o_9QAmX`0~mqyPT7+KPSc`qyjGfzIy3w_xm2w&e9+j@gOu;uOBQR2D=|kizYW* z6FgnrCSvdNKo=;$jYVr&}~p(#CrMG*v8~#831yyOQiFNZx4PdA0w^;@$tP%q5LmYS{a* zfL#g0;02KsvnVWn&U;BIqbUm5`bd3X)qR3V!uJ2lq3Az5JRJYhXxXr&i{Q@tJ=k@2$@`bl_ z_~Z?5acxu~?3DYnMEMt2pHUS`HML30fH3LL(prpU)(O8pHnSjElZw9_bueRQi9tp6 z2hH7Rs<_v0qBV5okh_t8ky4y~{87aw<4JfSm|GHMUh{@#@U{iLPQ2mOpQRh9w@@E4 zdCF&Ng`_0p|5465eg1u^InJR(LAX`DRNS!YV(y;! zb%f=5!y(ak)Pv`izMi4c7zP(b{-VXdADPDM+NL77Z=2(khvgp8S`yyTmYRdw${?+h zN9*x^))wILa9i3|y~Xiowjwzs?aX6oNZ51i%S@63wFv5&NF#Lr0f_Thc?&T9DFaxA zbckRmS+|s|9n!gc%_HUF4WP4@OP>=r*XL(S{d<1UF)-ORwlTrDGKQde%g9-BpKo__ zbC>h84p`SO(c%4e_|QpL9FdYuewcZZB>CG$UG9L@h_iVyYK(Cs*Rqfc>bP(n&!X*2sx?0#27u&D&o| zR;)jq>gs@eeY2J;63B;|_%_{{&R_Q&&TfkW{AHE2W<0PazYn!L0k^%=dmE0@_$i6J`QJvm(iS}rCiC1+U?LSigo|Fg2@)*ucrY_W6O52^LVTq2z`Iz2=^>@a)JDJ|nBjpoR;pGFzuJw%B> z#D=RxjOWX_(HY+n6N^lZ=Du;h`-jRa{YxO`)a$nXHhhoV{o2obMLQ-Dq<#^U6XeQh^QW5;~z-p*@u)q?(N^O)~3I$@sia<$#* z#nP~eF+YITU`ey(uRb>uL_f=0wxA>J=~5Q{j+rInl!Jt`LcK*hODsP8A~R~#{B{CDPR2MLwX1rvH8s>wXaSgXl?}mHU<8+ zs;}R>alK{@{Vc5J5LjMbmnX;?L;a7T3>5=5RN}AQrS0z;vRG2ku@^jRU-KHP$q{yw zjGhW7&Y@APQF6BkjB{S(t^X&T?oe##I``+~2Y1j`SF)_YShP18=cJe){P(_06nSE; zsE>j|g4ZwxTpY2S9B!tPgW)Kt2_!?I7(;9|@S^ja2+3x@o0h+Pr_d>u%HnN0+NPl| zm}Lm~I_m6#uW4x~)bmJr8;KgFEp!(;J_p5RI*x5MRM3UlpmUa2x)Ist$)rgP8jY() zoIalf9CPgZgHDfGsD$1I%x_wtyF_q#_bHee7i59!FDDpc#$q%)q@FPxUIYVSgxL{x z66fST>*NqPS>N4D(;?7H&nBvuw`AK)4%!DmNqP>$4RTv$Qi^hr}S zFN~rSWI?fWPh`AmOha0x_SN2f-N#oi@uWv5rUfH%zn{ef~k~8byi9{S#@% zLi(j`IEyGsajd`(xm~t48r4_$gf-yCia71;5a766jL9wXv3c2hbLhYCfPQu$mG3nv zob&Tu4>Ht4Gfw?&x43m@6dIKFX1poX0~$t1A?|$A4cMs*BAzRwL{B1}axXS3CZd*? zBgH|b5cZ;iBR2CQEsiQm`mnlOqFYsj@n)8OJx7Cgt`>9gz(gnGXpGjwq> zRNV}%Kgl3CnRE1%4NHC`Q)nW#eupYn&eEQZZprw^V&M_}qt!a>-uQ%eMTzNDSu+t$ zZQo+^kxk)VXQ<$JSlHS;Ymh$rvnW-y4ZbAqqV>W^y0Jr%Xw42tWZUp>HCUMM3EAc| zMi@Y@wgrPWYe)U#?;RhssrefYBobn+nB$4&faJ#QG^7*d@lV>gJuwKO)&(#SjaJRP zbZW`Gjn||T{HUvNfgaz}(6=NWivJWDYHgG1n`l_80dMa?INiFN-pI|a4)<~0%xGsx zjeq>Q-8wF=54Oky!?#ji4*D{vo{#=kj;?@1HP*sma8 zd><@{42xumqE4D*ij>)b!Foenoaf$spQHYUjz~?IPmhYDz1E?u+Wp#d13UY|q_==H zj$38(7ps?eZ<7eL4hYW1#4hN8S7&QhAzwXhX`6ccLndjbW)_>~d{)1gU`uA4%6{En zGbNz_dPoZB@ukS!PA%I-T%|-1YCFD<0|H9s&;^#{MfNXEjWJxO9M) z!pVhv_*1W1?bISw%UxS#vR3FK3;9y98d!@Wq%fZO5TZe(k%8)J2rtA@5Q2>DP4%gA z59_O0$jrTx>Z!<{mPvuV{dZpc;KQ@SrGMi#MmcY>-vzAUqhCvYLv8K=%#6ZgP>CsM zV}ID-X=hA0n8k=|~Re*@0vywT+0A%G8*Hs&S1n-;l5+8@(M6v*F=6aYe= zZI`S-;Fw?hifxgR%lVj%1apBRt1=^yfVZjrG&c;V=Q^T@j}z9C%ma`yWGSMvscVp# zp~kOnDaWXaQfr`Ezvd0l4dU@9{uz=FP_FCGOL{#^%`-eEItg-1%SQ`e`<7_Q`H(MW zsw24zK0HiliRdf|fTS!gEl+{Qc?#{$p(3M?d^x~yC}Z6(1`7I^gcfl-WE@3BFq$`n zXpTAG4LXveTiOI^{QNeNY5C3a!gC7r$oJnX{B~_PbP9aMx&aeQnB(maK0-*j{hkHN z*@Ph1bq!5x9|EXxb>86{T(eo{*)a6#g-5wS1BIy!7c|0ilgrQ+;x3cRzpLSk(^Tq~ z4~6u-kB7;}X5nbCjgRuvvp#4+>5w>|uFYoM09L*zJ#2}p#bRUl4A7=d%(O(s^tHpk zU@3T)#fikR|M-LVP*9KeZ+lwe7~z(Zi~)tD`$5j?R7nNM1cFHwk&x#GAItHSQ0%?B zTnki#>BOzUIIm9I@n^squ^26mkf@SK zt0{jwHDhbda!AV^d7?(TRNAKUSokg*aQ#?zm6h(7@JQme_6Y9mQ2r{YA&El0pX$J#nZ%D zaw3!w;13UL$S#B{TVao7D$`OepcD^gU3{WyLMz!#4lpB%K3lBD{e~kTCpS7WrCO&6 zs^-S>*kk@N6!6e46w%&uF9JVtAM{`Z6~MleOtx8({IYrpW=@62r zbnjJuoEI{D?BanRj5Pv(BKp?Uy5!ivk*%nPJ=ifABK=Ve>KKmu`qdCcJaH^~UJ+>o zXRi~@P9H_>9yB(_VZB^KgTZkEOd_Ko5(!L=|8VKSgpE?6k}rnHV4{eHNG9&(ms7$# zdE-mbbN2iQGwAd-#k0$2F)po1slfC?qKPI^m)2v$Zg%=4o6c9&AMWB69)&TA3Cw@f zr>=+X)A}q(ih?_9iueVSrt^5tS+V4A;~U9HoIyiWc_?Z2j!HT;p10nZCcX+S&8JI0 zt__Ec@4|n|F3m`Lhj0=Hc>;mh`tS83+yCF(bHvS+5s=r+d@P>fo$r!VY%`K`)QYoT zN1q8O{h7tgNq=mbZ8fu&>s4(x!^*EmxWAS?((gY&>Oh>j%6%*P88YqC z>jS_=UvgG9-kDc;5|m|O^iR0>?)-9aYZS|UodvxuA-?dPa~6zp07J58E(QC)Ra@^j z{g(16`4*&SF5H^iy*&T?eT+B5rwCWzy|om(?%-aB?Ne$>0iTTHVMoEynaHe$-!}~A zCkS08P3aC+`LM9MfAnBqdY@`E1I;$i(`&{N^TGWQ?00cH|nd?iL;{C`Xr3zq2r~*wvNU2)(>6 z6`vHfKqhaEtbY}3eC~gn`ftMltg-ERt6M=CNYe={3A{-u5Y_SqF$RX6y zu|oSrS8&Iu{}lI{)prgq0@`!j3X4%W+oQV?aFaLBw;b*fNNsXkWjM!S{Mn{wT=(%Y z#9l&E;qdgTmR{1NW1k9pvg~db1$wfa*VvI@jcS6*9*jWNEs@HlCV$^w9eSFz-f|zV zo>?VcV*@lJ3cx2u2QC?X1X|vy+l+Xc#hz34={s`LPF|wj3(ifm_(`O&gPxCKzFWj` zR$kbD_<;3%n$%=)YblC^@KaH5b)`41KY z3IO)5ZV}2A5irvUGTaGjAt{fW5_SLF<74cm$~lMfrAbnT2U%wc#Z2)v`}N4(m146k z!cDLjDYKO1Ov8+*iczH{Yr?4m<< zZlA*1dp=1$UB7oE;s(5!!B9it8K04m<-0qltnF_$7C>>fTlpg6nQBfOt0ep$$!nS2 zS6%30P{Z);oPA7XW2;My-1IlrFG@C^+M?kvSFcoJWS>74V66B{hRcSl1x2D!EBOw) zEd0f*{(7R;#6>yzqi{k0e4<^!Ifq6OcM^^at}({9IZkfDfwio=7lS}+z8dBuI3OP3RAEO3VtGOJt`-q z+y^>w#`?e8+~@Z*4}h98yUIbP=E*H0oEFmm5j8!G;&KV!74@foBymwx1Mk;)-B31o z6ITziz7O^nZh88YniOcBBc8-!AW6rknd28NGLe5%$t;IHZvl!ww8 #A`uLdr(Eo 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%0DlZp!xm9(Y;63P8}rZPERWPMPzoKS#}m8k62|1B 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

X~ z6&2v#vRkv!`sN$Sg22xtJDT^_yU!r_gV+GCq~nXB*M8U&f0TcIMBJ;rws@aE_xy*a>QVdMdWb!P%N43(ljn*HuEH#Q21N#dv zhMQ7dFNrbrC>>tHHwPOZtiy9Vj8cn>w{z?7R)L$6b0)5sx>Z?zD{(&AR>kaTznZUR z=0%;sK9@&&x6=3K@4Zn@4i+4;-4~$C4whH587-9LlvlOJ7=g$GEYu!gvI3e__fg^7 zN(~EFlT1kb_{L{0z@RYv1~Po3QqINOoG7@P%9OTN#&#*MlhO96D~D3u6>O30+VN}> zG1^B$CI~`L+uGl$@Hns)2FLa0xYS8INJ7lNPcKfK>S>a7P>2bE6K@%hiR95FT?kG2 z^^b1j|NoC{b>(Tnoe$gLHbikVSz30`?K4K>fB6Q%@Ep2Wyu_nrs?hGS4h}9tzlcb+ zIdok?i)QrfhO-`H<-cH8a0m!QL~*dQ&pc&2Nuu{|ys!|P)4naO)E_s4AK;)sXZgMT z$MM&&sd&U7gmf0tXgnS=FL!7~g;FkY6&`_k@{+S9Gdc13-|-~Fsbiw9C_x(AftUs& zFBp`Nq_KBqI`9x6sKH7)-fBMTuJ0V8nmx@YK|mPGxsh?)cBw9%y0AzFGV+IU$+uF? zAng)%LPZy_E_9ebD^V(Gd$TOjy3xen#eyj7y=rgmoI zj#a~(g2de-1ZWJ-T7qHrNzAk=2A;0_S)xqQRw!&M0S!$;8P8hH@8|?#88orl!=JQ& z{#*||!9gWV2*tK*M=-@!Bl}(;)}qOkkHMLMBwhT10Si4ciC=Xy+LkvSeiD%5z^g=s zWT(v{9W(0VY~@P%HHQh;_Sd?w+D&MbOsyH;>_^c0sg00a45Vp-KLta&;{0`6^Zwya zN(~mR`HDoo-Lx3{_m?#OiTSqfSE+=+Wp(t@r7MnwJdOhvMvD!N9oY{N@?ZL&CVQY` zIQrN}XS`+)#h|s?|Go8b0_g^mWJw3$-Y9f@SpEy;84tT_s5Iyb+7o!vPT5XeRWAx3 zMXj$|xz>E0=Gbjl<$UpbyTUYDrLbq5f0{86UOh#uY-uvDW3s=PVd=8r>a4lLF5m(~6&AkpRYzU(qX z$OlL|BA+zV+7dJ~f-&_jdl|MP;o%^97Zw4tJRu_l%6b1dVN<_Xw>n_uMRQ19`qP&F z{+@zcSf!gy{0D?LmIW+AVbAjbvwx9sRai5d|Iw7MQT0ohK<_!vaXgaQ*`rq-^o?e`g@sjwW4^CKUc;3q&_pW`C2i(iO|o zhGQ00?(A+?6@}xzjaCQqkIu)c{^OZ!(guY4V7nD{<}?hzWT|Ubci_=oJrURCsgi@~ z7?xwm*w|QtPN%*1%34|fVbG`c7s-g~k5t)&eHXmI1MD-{25JdOohvg;IOF22(4!7*S0*! z4QkZvd9OO-Zg41_V7PWID0poc_9IB4F-|}N_rNX_o?iSQ=NZa?hdTPkBOSxPz%BvFh|u0^C>aPN)0tu6NJ z0&B!$Mti?5UpLGc37k{}?Zq6hR)tpCu!XaYEknTdHG?;sE zjgCzbsb-C6<+?Er*8|tT=;P9%A{$@t5k7w36r+zJ0>UUm44%|*CPyeg zdcR1abOsE&P=ttceXHUBB7Qq0B90EDP^n4n8s}tGzBTeSU3`z>vuGAF2I$^A~KQ*NaxU54!vk78JAIQj*CSFFd_bf#*FK15RLH}^>DjE{0> zt*(;@(#^)``adik`;%%DP6gI#?OGXF&~2$IIm*n0xLb*Q^@5Bh;vhYVYAAib$IQ

2?j*2=Z3izv#(=_R0Zd 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

5j$UJnk2Fa4(S-(Q#| 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

@!os2ACr&eaZ1?T_PTF!fMT%W*ZI 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 literal 0 HcmV?d00001 diff --git a/ExperimentDocuments/sbn.md b/ExperimentDocuments/sbn.md index adebf8045..318dc1d91 100644 --- a/ExperimentDocuments/sbn.md +++ b/ExperimentDocuments/sbn.md @@ -7,8 +7,7 @@ toc: false --- # Organizational Documents for SBN -* SBN Bylaws -* SBN Code of Conduct +* SBN Bylaws: (SBN-Doc-39829) [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=39829] ## SBND Organizational Chart ## * Link to SBN Org Chart From 19e4983e35b91a2a6039a44bc333663d7ac9372a Mon Sep 17 00:00:00 2001 From: Jamie Dyer Date: Tue, 25 Feb 2025 21:02:38 -0600 Subject: [PATCH 1077/1437] fix icarus organizational info --- ExperimentDocuments/icarus.md | 14 +++++++------- ExperimentDocuments/sbn.md | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ExperimentDocuments/icarus.md b/ExperimentDocuments/icarus.md index ca81a0966..fecf4fb7f 100644 --- a/ExperimentDocuments/icarus.md +++ b/ExperimentDocuments/icarus.md @@ -7,17 +7,17 @@ toc: false --- # Organizational Documents for ICARUS -* ICARUS Bylaws: (SBN-Doc-18434) [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=18434] -* ICARUS Institutions, members, and Institutional Board (IB) representatives:[https://icarus.fnal.gov/collaboration/] -* ICARUS Editorial and Speakers Board (ESB): (SBN-Doc-17328) [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=17328] -* ICARUS Analysis Blinding Policy: (SBN-Doc-34523) [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=34523] -* ICARUS Shift Policy: (SBN-Doc-23913) [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=23913] +* ICARUS Bylaws: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=18434](SBN-Doc-18434) +* ICARUS Institutions, members, and Institutional Board (IB) representatives: [https://icarus.fnal.gov/collaboration/](https://icarus.fnal.gov/collaboration/) +* ICARUS Editorial and Speakers Board (ESB): [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=17328](SBN-Doc-17328) +* ICARUS Analysis Blinding Policy: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=34523](SBN-Doc-34523) +* ICARUS Shift Policy: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=23913](SBN-Doc-23913) ## ICARUS Organizational Charts ## -* Analysis and Software: (SBN-Doc-38529) [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38529] +* Analysis and Software: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38529](SBN-Doc-38529) ## Repository for ICARUS Technical Notes -* ICARUS Technical Notes have been consolidated at the following location: https://icarus-exp.fnal.gov/at_work/technical_notes.html +* ICARUS Technical Notes have been consolidated at the following location: [https://icarus-exp.fnal.gov/at_work/technical_notes.html](https://icarus-exp.fnal.gov/at_work/technical_notes.html) * The username and password required to access that repository are on the ICARUS ECL under "projects," labeled "Icarus Website Internal pages (password protected) username/password" ## Publicly Approved Plots ## diff --git a/ExperimentDocuments/sbn.md b/ExperimentDocuments/sbn.md index 318dc1d91..0eadcc347 100644 --- a/ExperimentDocuments/sbn.md +++ b/ExperimentDocuments/sbn.md @@ -7,7 +7,7 @@ toc: false --- # Organizational Documents for SBN -* SBN Bylaws: (SBN-Doc-39829) [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=39829] +* SBN Bylaws: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=39829](SBN-Doc-39829) ## SBND Organizational Chart ## * Link to SBN Org Chart From 9ab5e380e46f1d2dba14b41807b250f07d857a0d Mon Sep 17 00:00:00 2001 From: Jamie Dyer Date: Tue, 25 Feb 2025 21:12:29 -0600 Subject: [PATCH 1078/1437] Fix syntax --- ExperimentDocuments/icarus.md | 10 +++++----- ExperimentDocuments/sbn.md | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ExperimentDocuments/icarus.md b/ExperimentDocuments/icarus.md index fecf4fb7f..2be05c471 100644 --- a/ExperimentDocuments/icarus.md +++ b/ExperimentDocuments/icarus.md @@ -7,14 +7,14 @@ toc: false --- # Organizational Documents for ICARUS -* ICARUS Bylaws: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=18434](SBN-Doc-18434) +* ICARUS Bylaws: [SBN-Doc-18434](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=18434) * ICARUS Institutions, members, and Institutional Board (IB) representatives: [https://icarus.fnal.gov/collaboration/](https://icarus.fnal.gov/collaboration/) -* ICARUS Editorial and Speakers Board (ESB): [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=17328](SBN-Doc-17328) -* ICARUS Analysis Blinding Policy: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=34523](SBN-Doc-34523) -* ICARUS Shift Policy: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=23913](SBN-Doc-23913) +* ICARUS Editorial and Speakers Board (ESB): [SBN-Doc-17328](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=17328) +* ICARUS Analysis Blinding Policy: [SBN-Doc-34523](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=34523) +* ICARUS Shift Policy: [SBN-Doc-23913](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=23913) ## ICARUS Organizational Charts ## -* Analysis and Software: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38529](SBN-Doc-38529) +* Analysis and Software: [SBN-Doc-38529](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38529) ## Repository for ICARUS Technical Notes * ICARUS Technical Notes have been consolidated at the following location: [https://icarus-exp.fnal.gov/at_work/technical_notes.html](https://icarus-exp.fnal.gov/at_work/technical_notes.html) diff --git a/ExperimentDocuments/sbn.md b/ExperimentDocuments/sbn.md index 0eadcc347..5dfdb03a8 100644 --- a/ExperimentDocuments/sbn.md +++ b/ExperimentDocuments/sbn.md @@ -7,7 +7,7 @@ toc: false --- # Organizational Documents for SBN -* SBN Bylaws: [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=39829](SBN-Doc-39829) +* SBN Bylaws: [SBN-Doc-39829](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=39829) ## SBND Organizational Chart ## * Link to SBN Org Chart From 04acb877c9f7a7124c652e7250c98774ffcbb1e4 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Wed, 26 Feb 2025 10:17:23 +0000 Subject: [PATCH 1079/1437] Update sbnd_calibration_database_instructions_how_to_manage.md Updating table with database information --- ...ion_database_instructions_how_to_manage.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/sbnd_calibration_database_instructions_how_to_manage.md b/sbnd_calibration_database_instructions_how_to_manage.md index 760217cee..f1f860a10 100644 --- a/sbnd_calibration_database_instructions_how_to_manage.md +++ b/sbnd_calibration_database_instructions_how_to_manage.md @@ -21,6 +21,7 @@ exp/sbnd/data/users/mguzzo/calib_db/mnvcon_ups_6.6_modified The first thing to do is to set up the environment to be able to run the necessary scripts inherited from Minerva: ``` ssh @sbndgpvm01.fnal.gov +sh /exp/$(id -ng)/data/users/vito/podman/start_SL7dev.sh cd /exp/sbnd/data/users//calib_db/mnvcon_ups_6.6_modified/ source setup.sh source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh @@ -47,10 +48,13 @@ psql -U -h -p -d Find below the host/port/database values for accesing the development/production databases: -| Description | Host (-h) | Port (-p) | Database name (-d) | -| ----------- | --------- | --------- | ------------------ | -| Development Database | cdpgsdev | 5488 | sbndteststand | -| Production Database | ifdb09 | 5456 | sbnd_online_prd | +| Database | Host (-h) | Port (-p) | Database name (-d) | Schema (-n) | Writer (-W) | Reader (-R) | +| --------------------------------------------------- | --------- | --------- | ------------------ | -------------- | ----------------- | ----------------- | +| Development | ifdb10 | 5488 | sbnteststand | sbnd_calib_dev | sbnd_calib_writer | sbnd_calib_reader | +| Production (primary database) | sbnd-db01 | 5434 | sbnd_online_prd | | | | +| Production (streaming standby, read-only replica) | sbnd-db02 | 5434 | sbnd_online_prd | | | | +| Production (streaming standby, read-only replica) | ifdb09 | 5456 | sbnd_online_prd | | | | +| Production (log-shipping standby read-only replica) | ifdb09 | 5490 | sbnd_online_prd | | | | Once logged into the database, you can create a new schema by first setting its "role" and then creating it. Find below the commands used to create the schema for the "development database": @@ -96,16 +100,11 @@ In order to populate your schema, you should first create a table with the varia Ok, now that you've been warned, let's take a look at how to create a new/empty table, the command is: ``` -python bin/create_table.py -c -t t -h -p -U -w -W -R -n \ : \ : +python bin/create_table.py -c -t t -h -p -U -w -W -R -n \ : \ : ``` Note: remember to [set up the environment](#step-1-set-up-environment) first and to run the command above from the sbndgpvm01 machine (not the gateway). -| Description | Password (-w) | Writer (-W) | Reader (-R) | Name (-n) | -| ----------- | ------------- | -- | -- | -- | -| Dev. Db. | Request pwd | sbnd_calib_writer | sbnd_calib_reader | sbnd_calib_dev | -| Prod. Db. | Request pwd | | | | - ### Example of the process of creating a table From an empty schema: From ff5f369d45f498679dc7fad2521c901dc26d46f6 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 26 Feb 2025 09:15:40 -0500 Subject: [PATCH 1080/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index f0bd4392b..aea6da21f 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -437,7 +437,7 @@ Data SBN Production Samples | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | | Feb25 Workshop - Calibration / CrossingMuons | v10_04_01_01 | - | raw | CalibData_18115_17934_CrossingMuon_raw | -| --- | --- | --- | reco1 | MCP2025A_CalibData_18115_17934_CrossingMuon_v10_04_01_01_reco1_DATA_SBND | +| --- | --- | --- | reco1 | MCP2025A_CalibDatawraw_18115_17934_CrossingMuon_v10_04_01_01_reco1_DATA_SBND | | BNB Summer 2024 Data | v09_93_01_01 | - | raw | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009 | | --- | --- | --- | decode | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_decode | | --- | --- | --- | reco1 | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_reco1 | From d361a54c671c3ed2ef4b1e0084867cffca6dd492 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 26 Feb 2025 12:13:24 -0500 Subject: [PATCH 1081/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index aea6da21f..f2ec4c671 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -74,10 +74,6 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_caf_flat_caf_sbnd | -| Feb25 Workshop - In-Time Cosmics w/ raw digits | MC2025A | v10_04_01_01 | 20k | reco1 | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025Awraw_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025Awraw_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025Awraw_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025Awraw_reco2_sbnd | | Feb25 Workshop - In-Time Cosmics | MC2025A | v10_04_01 | 20k | reco1 | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_reco2_sbnd | From 22b11584da239dabc67d3bc2dcfb23a2f956015e Mon Sep 17 00:00:00 2001 From: Marco Del Tutto Date: Wed, 26 Feb 2025 21:30:58 -0600 Subject: [PATCH 1082/1437] Update FluxReader.md --- .../SimulationInfrastructure/FluxReader.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md b/AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md index f719b284d..813af43ce 100644 --- a/AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md +++ b/AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md @@ -12,7 +12,7 @@ The `FluxReader` code allows reading gSimple, Dk2Nu, or BooNE files direclty int The usual LArSoft chain involves starting with a neutrino event generator, which reads in gSimple flux files and saves neutrino interactions in the LArSoft art::Event. In this way though, neutrinos that do not interact are lost and one cannot calculate, for example, the neutrino flux. FluxReader instead reads in gSimple files direclty and saves all the neutrinos to the LArSoft art::Event. There is no neutrino event generator involved in this case. Note that in this case, each MCTruth product does not represent a neutrino interaction, but just a neutrino ray. -This code is available since `sbndcode v09_25_00`. +This code is available since `sbncode v09_25_00`. @@ -26,11 +26,12 @@ lar -c run_fluxreader_sbnd.fcl -S /pnfs/sbnd/resilient/users/mdeltutt/Filelists/ ``` will run FluxReader with 10 input gSimple files listed in `gsimple_flux_configH-v1_10files.list`. +**NOTE**: These may not be the latest flux files! Check https://sbnsoftware.github.io/sbndcode_wiki/The_SBND_flux_files.html. -`run_fluxreader_sbnd` runs the following: +`run_fluxreader_sbnd.fcl` runs the following: - `FluxReader` (art::Source): reads each neutrino in the gSimple file, creates MCTruth, MCFlux (and Dk2Nu and NuChoice) dataproducts and places them in an art::Event - `FluxGeoFilter` (art::Filter): filters events based on the neutrino position. It moves along the neutrino direction, and only keeps events if the neutrino intersects at least one of the specified volumes. The default volume is `volTPCActive`. -- `FluxReaderAne` (art::Analyzer): analyzer that creates an output TTree with all neutrinos hitting a customizable area. Currenlty set to the SBND front face. +- `FluxReaderAna` (art::Analyzer): analyzer that creates an output TTree with all neutrinos hitting a customizable area. Currenlty set to the SBND front face. If you'd like to run with the BooNE files as input, use ```bash From fc282fef1293a3fd53f3c061ddbf492c49df77e7 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Thu, 27 Feb 2025 11:55:04 +0000 Subject: [PATCH 1083/1437] Update sbnd_calibration_database_instructions_how_to_manage.md --- ...ion_database_instructions_how_to_manage.md | 102 +++++++++++++----- 1 file changed, 75 insertions(+), 27 deletions(-) diff --git a/sbnd_calibration_database_instructions_how_to_manage.md b/sbnd_calibration_database_instructions_how_to_manage.md index f1f860a10..68c68dd56 100644 --- a/sbnd_calibration_database_instructions_how_to_manage.md +++ b/sbnd_calibration_database_instructions_how_to_manage.md @@ -1,6 +1,6 @@ -**Author:** Marina Reggiani-Guzzo, PDRA at the University of Edinburgh (Last update: 24/May/2024) +**Author:** Marina Reggiani-Guzzo, PDRA at the University of Edinburgh (Last update: 27/February/2025) -Managing the database consists of 3 steps: +Managing the database consists of the following steps: 1. Set up environment to be able to run the necessary scripts 2. Create a schema in the database @@ -8,27 +8,51 @@ Managing the database consists of 3 steps: 4. Write values to the table in the database 5. Evaluate which tables you want to include in the next tag 6. Tag the latest update +7. Convert database into .db file This tutorial covers each of the steps described above. -A few of the steps above use scripts inherited from Minerva, so please clone the following repository to your working area: +## General information + +This tutorial uses scripts inherited from Minerva and a few other scripts, so please, clone the following repository to your working area, it contains all the files you will need: ``` -exp/sbnd/data/users/mguzzo/calib_db/mnvcon_ups_6.6_modified +/exp/sbnd/data/users/mguzzo/database_tools ``` +The table below contains the main information you will need to access and modify the database: + +| Database | Host (-h) | Port (-p) | Database name (-d) | Schema (-n) | Writer (-W) | Reader (-R) | +| --------------------------------------------------- | --------- | --------- | ------------------ | -------------- | ----------------- | ----------------- | +| Development | ifdb10 | 5488 | sbnteststand | sbnd_calib_dev | sbnd_calib_writer | sbnd_calib_reader | +| Production (primary database) | sbnd-db01 | 5434 | sbnd_online_prd | | | | +| Production (streaming standby, read-only replica) | sbnd-db02 | 5434 | sbnd_online_prd | | | | +| Production (streaming standby, read-only replica) | ifdb09 | 5456 | sbnd_online_prd | | | | +| Production (log-shipping standby read-only replica) | ifdb09 | 5490 | sbnd_online_prd | | | | + ## Step 1 Set up environment -The first thing to do is to set up the environment to be able to run the necessary scripts inherited from Minerva: +There are two set ups you you need to do during this tutorial. + +- The first one is to set up the environment to be able to run the necessary scripts inherited from Minerva (all the python scripts): ``` ssh @sbndgpvm01.fnal.gov -sh /exp/$(id -ng)/data/users/vito/podman/start_SL7dev.sh -cd /exp/sbnd/data/users//calib_db/mnvcon_ups_6.6_modified/ -source setup.sh -source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh -setup sbndcode v09_82_02_01 -q e26:prof +sh /exp/$(id -ng)/data/users/vito/podman/start_SL7dev.sh # container to use SL7 +source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh # initial sbnd setup script +source /exp/sbnd/data/users//calib_db/mnvcon_ups_6.6_modified/setup.sh # setup to use python scripts +setup sbndcode v09_82_02_01 -q e26:prof # sbndcode with Python version>v3 ``` Note that the scripts in the next steps do not seem to work for Python versions before `v3`. +- The second one is how to access the database: +``` +ssh @sbndgpvmXX.fnal.gov +ssh sbnd@sbnd-gatewayXX.fnal.gov # XX = 03 or 04 +ssh sbnd-daq02.fnal.gov # allow using psql after moving to AL9 +psql -U -h -p -d # information above in "General Information" +``` + + + ## Step 2 Create a schema in the database In case you want to create a new schema in the database, follow the steps below. However you will likely use an already existing schema, in this case you can simply skip this step. @@ -39,23 +63,13 @@ In order to create a schema in the database, you should first access the databas # access sbndgpvm01 ssh @sbndgpvm01.fnal.gov -# access gateway (if 'Permission Denied' ask William Badgett to add you to the sbnd .k5login file) +# access gateway (if 'Permission Denied' ask Geoff Savage to add you to the sbnd .k5login file) ssh -K sbnd@sbnd-gateway01.fnal.gov # log into the database (if 'Permission Denied' talk to Olga Vlasova) psql -U -h -p -d ``` -Find below the host/port/database values for accesing the development/production databases: - -| Database | Host (-h) | Port (-p) | Database name (-d) | Schema (-n) | Writer (-W) | Reader (-R) | -| --------------------------------------------------- | --------- | --------- | ------------------ | -------------- | ----------------- | ----------------- | -| Development | ifdb10 | 5488 | sbnteststand | sbnd_calib_dev | sbnd_calib_writer | sbnd_calib_reader | -| Production (primary database) | sbnd-db01 | 5434 | sbnd_online_prd | | | | -| Production (streaming standby, read-only replica) | sbnd-db02 | 5434 | sbnd_online_prd | | | | -| Production (streaming standby, read-only replica) | ifdb09 | 5456 | sbnd_online_prd | | | | -| Production (log-shipping standby read-only replica) | ifdb09 | 5490 | sbnd_online_prd | | | | - Once logged into the database, you can create a new schema by first setting its "role" and then creating it. Find below the commands used to create the schema for the "development database": ``` @@ -103,9 +117,14 @@ Ok, now that you've been warned, let's take a look at how to create a new/empty python bin/create_table.py -c -t t -h -p -U -w -W -R -n \ : \ : ``` -Note: remember to [set up the environment](#step-1-set-up-environment) first and to run the command above from the sbndgpvm01 machine (not the gateway). +Note: +1. remember to setup the environment first and to run the command above from the sbndgpvm01 machine (not the gateway) +2. only lowercases for the name of the table -### Example of the process of creating a table + +

+ +Example of the process of creating a table From an empty schema: @@ -194,6 +213,8 @@ sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; ``` As mentioned above, the command `bin/create_table.py` simply creates the tables with the desired variables (in this example it is `wire_number`, `flange`, `board`, `localchannel`, `status`, `low` and `high`), however the tables are still empty (all of them have `0 rows` of entries). The next step will describe how to populate these tables. +
+ ## Step 4 Populate tables This section describes how to populate the tables in your schema. Keep in mind that this process is also used if you want to **update** an already existing table, it will be more clear later in this section why this is the case, please bear with me! @@ -204,9 +225,14 @@ Likewise the previous section, we also use a script from `mnvcon_ups_6.6_modifie python bin/write_data.py -n -h -p -U -w \ \ \ ,, ``` -Note that `` is a Unix Timestamp, and that `` is a Unix Timestamp +2. ` + +Example of the process of populating a table Let's see what happens to the schema when we run the command above. Take the following example (where the values have no physical meaning, it's just for example purposes): ``` @@ -286,6 +312,8 @@ sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; See that the same values got added to the table (because we're still using the same csv file as input) right below the previous values, they are now associated to `iov_id=2` and both `iov_id=1 and 2` are `active=t`. So now you understand that the table will actually always contain all the information ever populated to it, however the accessible information is defined by which `iov_id` is set to active. + + ## Step 5 Evaluate active tables The database has a structure where you can "tag" its versions so you can retrieve any specific configuration at any time (similar to the "commit" function in GitHub). Keep in mind that when you tag a version, it will include all the "active" `iov_id`. Therefore, before tagging any version, you should make sure that only the desired `iov_id` is set as `active=t`, the other ones should be set to `active=f` so they are not included in the tag you are about to create. You can switch the active status as: @@ -293,7 +321,9 @@ The database has a structure where you can "tag" its versions so you can retriev UPDATE .

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 AqhY)8XOr2K4^&aVdn1q)J`XnDMy@U2C%qpf& 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�iU`2c(nhCPkurA{Z~E@8kO{{ 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%0DbJP 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

SET active=false WHERE iov_id=; ``` -### Example of how to activate/de-activate tables +
+ +Example of how to activate/de-activate tables See below how this command looks like, starting from a situation where all `iov_id` are set to `active=t` ``` @@ -316,6 +346,8 @@ sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_iovs; ``` Where now only `iov_id=2` is set as active. +
+ ## Step 6 Tag a version Once you are happy with the list of active `iov_id`, you can tag the version by using the command: @@ -323,7 +355,9 @@ Once you are happy with the list of active `iov_id`, you can tag the version by python bin/tag.py -h -p -U -w -n -c "" "" ``` -### Example of tagging versions +
+ +Example of tagging versions Let's see what happens when we tag a version with a single `iov_id` active, and then when there are multiple ones active. @@ -418,3 +452,17 @@ sbnteststand=> SELECT * FROM sbnd_calib_dev.tpc_channelstatus_data_tag_iovs; ``` The last table `_tag_iovs` gives the list of active iov_id per tag. Ideally you want to have only one per tag! The reason is very simple: the LArSoft modules read the database from the top to the bottom. So imagine you have 4 channels, like in the example above. If your tag has more than one active `iov_id`, then your module will always read the values related to the oldest `iov_id`, instead of the newest one. + +
+ +## Step 7 Convert database into a .db file + +## Other things + +- How to delete folders: If you want to drop a set of tables, you should do it in the following order due to the reference dependencies. +``` +DROP TABLE .
_data; +DROP TABLE .
_tag_iovs; +DROP TABLE .
_tags; +DROP TABLE .
_iovs; +``` From 088d2ce7a089df41c07a96ea1f4af3697d19abf6 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Thu, 27 Feb 2025 12:07:46 +0000 Subject: [PATCH 1084/1437] Update sbnd_calibration_database_instructions_how_to_manage.md --- ...ion_database_instructions_how_to_manage.md | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/sbnd_calibration_database_instructions_how_to_manage.md b/sbnd_calibration_database_instructions_how_to_manage.md index 68c68dd56..e4a7fd24a 100644 --- a/sbnd_calibration_database_instructions_how_to_manage.md +++ b/sbnd_calibration_database_instructions_how_to_manage.md @@ -459,10 +459,32 @@ The last table `_tag_iovs` gives the list of active iov_id per tag. Ideally you ## Other things -- How to delete folders: If you want to drop a set of tables, you should do it in the following order due to the reference dependencies. +### PSQL commands + +- Print table names in a schema: +``` +SELECT table_name FROM information_schema.tables WHERE table_schema=''; +``` +- Print information from table: +``` +SELECT * FROM .; +``` +- Print information from table with query: +``` +SELECT * FROM . WHERE =; +``` +- Drop/delete a table: +``` +DROP TABLE .; +``` +If you want to drop a set of tables, you should do it in the following order due to the reference dependencies. ``` DROP TABLE .
_data; DROP TABLE .
_tag_iovs; DROP TABLE .
_tags; DROP TABLE .
_iovs; ``` +- Update a value from a table: +``` +UPDATE .
SET = WHERE =; +``` From 340119f3ff4ae10557d723cb167abbdd6cdf7734 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Thu, 27 Feb 2025 14:15:47 +0000 Subject: [PATCH 1085/1437] Update sbnd_calibration_database_instructions_how_to_manage.md --- sbnd_calibration_database_instructions_how_to_manage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnd_calibration_database_instructions_how_to_manage.md b/sbnd_calibration_database_instructions_how_to_manage.md index e4a7fd24a..8acf0dc42 100644 --- a/sbnd_calibration_database_instructions_how_to_manage.md +++ b/sbnd_calibration_database_instructions_how_to_manage.md @@ -38,7 +38,7 @@ There are two set ups you you need to do during this tutorial. ssh @sbndgpvm01.fnal.gov sh /exp/$(id -ng)/data/users/vito/podman/start_SL7dev.sh # container to use SL7 source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh # initial sbnd setup script -source /exp/sbnd/data/users//calib_db/mnvcon_ups_6.6_modified/setup.sh # setup to use python scripts +source /exp/sbnd/data/users/mguzzo/database_tools/mnvcon_ups_6.6_modified/setup.sh # setup to use python scripts setup sbndcode v09_82_02_01 -q e26:prof # sbndcode with Python version>v3 ``` Note that the scripts in the next steps do not seem to work for Python versions before `v3`. From a414ea9a5312454056e3cf83ff30d4236ae93086 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Thu, 27 Feb 2025 15:24:34 +0000 Subject: [PATCH 1086/1437] Create sbncode_v10_04_04.md --- .../Releases/sbncode_v10_04_04.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_04.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_04.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_04.md new file mode 100644 index 000000000..872ee1445 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_04.md @@ -0,0 +1,57 @@ +--- +layout: page +title: sbncode_v10_04_04 +toc: true +--- + +sbncode_v10_04_04 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v10_04_04 and v10_04_03](https://github.com/SBNSoftware/sbncode/compare/v10_04_03...v10_04_04_00) + +Date +--------------------------------------------------- +27 February 2025 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v10_04_04) has been cut and distributed + +* sbnanaobj (v10_00_00): + + Includes: + + * Add new G4 process to StandardRecord. Set UNKNOWN to "safe" value. [#135](https://github.com/SBNSoftware/sbnanaobj/pull/135) + +* sbnobj (v10_00_05): + + Includes: + + * Channel info object to hold baseline+rms [#120](https://github.com/SBNSoftware/sbnobj/pull/120) + * Add ps to decoded TDC, allow 2 different constructors for backward compatibility [#121](https://github.com/SBNSoftware/sbnobj/pull/121) The fix introduces a new variable `timestampPs` in the decoded TDC object `sbnd::timing::DAQTimestamp`. + +* sbncode (v10_04_04): + + Using (updated dependencies): + * larsoft v10_04_04 + * sbnanaobj v10_00_00 + * sbnobj v10_00_05 + + Includes: + + * Lepton Meson HNL Anisotropies and HNL Polarization fix [#502](https://github.com/SBNSoftware/sbncode/pull/502) Revises HNL polarization calculations in MeVPrtlGen + * Add RadioactiveDecayBase to CAFMaker [#509](https://github.com/SBNSoftware/sbncode/pull/509) Adds a call that handles RadioactiveDecay calls and suppresses noisy errors in CAFMaker + * Update supera tag [#510](https://github.com/SBNSoftware/sbncode/pull/510) Points to [updated fcl files for Supera](https://github.com/SBNSoftware/sbncode/pull/510/commits/9a1af2f38ddc27cd2de08b9d111f8fa9f344d275) + + +Extra info +--------------------------------------------------- + +This version of LArSoft reverts [LArSoft/larpandoracontent#72](https://github.com/LArSoft/larpandoracontent/pull/72) which produced unintended changes to the vertex refinement algorithm that affected SBND workflows. +See the [LArSoft release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_04_04) for details. From 732175028b233081872eaa95c5c61720b4f851e6 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Thu, 27 Feb 2025 15:32:15 +0000 Subject: [PATCH 1087/1437] Update sbnd_calibration_database_instructions_how_to_manage.md --- sbnd_calibration_database_instructions_how_to_manage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnd_calibration_database_instructions_how_to_manage.md b/sbnd_calibration_database_instructions_how_to_manage.md index 8acf0dc42..b853c3859 100644 --- a/sbnd_calibration_database_instructions_how_to_manage.md +++ b/sbnd_calibration_database_instructions_how_to_manage.md @@ -38,8 +38,8 @@ There are two set ups you you need to do during this tutorial. ssh @sbndgpvm01.fnal.gov sh /exp/$(id -ng)/data/users/vito/podman/start_SL7dev.sh # container to use SL7 source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh # initial sbnd setup script -source /exp/sbnd/data/users/mguzzo/database_tools/mnvcon_ups_6.6_modified/setup.sh # setup to use python scripts setup sbndcode v09_82_02_01 -q e26:prof # sbndcode with Python version>v3 +source /exp/sbnd/data/users/mguzzo/database_tools/mnvcon_ups_6.6_modified/setup.sh # setup new path to python library ``` Note that the scripts in the next steps do not seem to work for Python versions before `v3`. From da85448d6b14d1d61564e3595a2a2db081e60880 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Thu, 27 Feb 2025 16:36:33 +0000 Subject: [PATCH 1088/1437] Update sbnd_calibration_database.md --- sbnd_calibration_database.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 968b0cd55..01c8ddcc2 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -114,18 +114,24 @@ This section displays a list of the variables in the database, as well as their | xhigh | real | High-edge bin position in X direction | cm | | scale | real | Non-uniformity scale along X direction | N/A | -### pds_globalconstants -- Folder description: This folder contains non-channel specific information -- Channel number: No meaning -- Number of rows: 1 +### pds_calibration +- Folder description: This folder contains general information about the PDS system (reco, timing, decoding...) +- Channel number: PMT channels +- Number of rows: 120 - URL with current values in Production Database: | Variable Name | Type | Description | Unit | | ------------- | ---- | ----------- | ---- | -| gauss_wc | real | WC parameter for Gauss noise filter | GHz | +| breakout_box | integer | Breakout box to which the PMT is connected | N/A | +| caen_digitizer | integer | CAEN digitizer to which the PMT is connected | N/A | +| caen_digitizer_channel | integer | CAEN digitizer channel to which the PMT is connected | N/A | +| total_transit_time | real | Total transit time | ns | +| spe_amp | real | Mean amplitude of SPE | ADC | +| gauss_wc | real | WC parameter for Gauss noise filter | GHz | | gauss_w_wc_power | real | Power parameter for Gauss noise filter | N/A | | ophit_adc_deco_threshold | int | ADC threshold for selecting ophits on deconvolved signal | N/A | -| 1spe_amp | real | Mean amplitude of SPE | ADC | +| ser_vec_0 --> ser_vec_499 | real | | | + ### What happens when a variable does not exist in an older version of the database? From cbe4a1e60b6621f502f8f18c4142e4ebca2179b6 Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:22:19 +0000 Subject: [PATCH 1089/1437] Update sbnd_calibration_database_instructions_how_to_manage.md --- sbnd_calibration_database_instructions_how_to_manage.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sbnd_calibration_database_instructions_how_to_manage.md b/sbnd_calibration_database_instructions_how_to_manage.md index b853c3859..ba5b180da 100644 --- a/sbnd_calibration_database_instructions_how_to_manage.md +++ b/sbnd_calibration_database_instructions_how_to_manage.md @@ -14,9 +14,9 @@ This tutorial covers each of the steps described above. ## General information -This tutorial uses scripts inherited from Minerva and a few other scripts, so please, clone the following repository to your working area, it contains all the files you will need: +This tutorial uses scripts inherited from Minerva, so please, clone the following repository to your working area, it contains all the files you will need: ``` -/exp/sbnd/data/users/mguzzo/database_tools +/exp/sbnd/data/users/mguzzo/database_tools/mnvcon_ups_6.6_modified ``` The table below contains the main information you will need to access and modify the database: @@ -39,7 +39,8 @@ ssh @sbndgpvm01.fnal.gov sh /exp/$(id -ng)/data/users/vito/podman/start_SL7dev.sh # container to use SL7 source /cvmfs/sbnd.opensciencegrid.org/products/sbnd/setup_sbnd.sh # initial sbnd setup script setup sbndcode v09_82_02_01 -q e26:prof # sbndcode with Python version>v3 -source /exp/sbnd/data/users/mguzzo/database_tools/mnvcon_ups_6.6_modified/setup.sh # setup new path to python library +cd /exp/sbnd/data/users/mguzzo/database_tools/mnvcon_ups_6.6_modified/ +source setup.sh # setup new path to python library ``` Note that the scripts in the next steps do not seem to work for Python versions before `v3`. From 6ead1b7c4910d5f2b75807ad0eef7efa214f039c Mon Sep 17 00:00:00 2001 From: Marina Reggiani-Guzzo <61795572+mrguzzo@users.noreply.github.com> Date: Tue, 4 Mar 2025 16:07:28 +0000 Subject: [PATCH 1090/1437] Update sbnd_calibration_database.md --- sbnd_calibration_database.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 01c8ddcc2..11729daa6 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -130,7 +130,7 @@ This section displays a list of the variables in the database, as well as their | gauss_wc | real | WC parameter for Gauss noise filter | GHz | | gauss_w_wc_power | real | Power parameter for Gauss noise filter | N/A | | ophit_adc_deco_threshold | int | ADC threshold for selecting ophits on deconvolved signal | N/A | -| ser_vec_0 --> ser_vec_499 | real | | | +| ser_vec_0 → ser_vec_499 | real | ADC count per bin (550 in total) for the Single Electron Response (SER) pulse (More info: [DocDB 38059](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38059)) | ADC | ### What happens when a variable does not exist in an older version of the database? From 1066889b99b58962b3b53eb3f7068374b61ee8ee Mon Sep 17 00:00:00 2001 From: Steven Gardiner Date: Thu, 6 Mar 2025 17:39:21 -0600 Subject: [PATCH 1091/1437] Add Feb 25 workshop updates for golden run zero bias data and BNB + cosmics sample --- sbn/sbnprod_wiki/sample.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index f2ec4c671..c48c15955 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -55,7 +55,12 @@ Monte Carlo official SBN Production Samples -------------------------- | Sample Description | production push | release version | # Events | File type | Samweb definition | -| --- | --- | --- | --- | --- | --- | +| --- | --- | --- | --- | --- | --- | +| Feb25 Workshop - BNB + Cosmics | MC2025A | v10_04_03 | 60k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_reco2_sbnd | +| --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_sbnd | +| --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_flat_caf_sbnd | | Feb25 Workshop - Intrinsic Nue + Cosmics | MC2025A | v10_04_01_01 | 7.5k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_reco2_sbnd | @@ -432,6 +437,12 @@ Data SBN Production Samples | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | +| Feb25 Workshop - Run 18115 Zero Bias Data | v10_04_03 | 850k | decode | MCP2025A_GoldenRun_LArv10_v10_04_03_decode | +| --- | --- | --- | reco1 | MCP2025A_GoldenRun_LArv10_v10_04_03_reco1 | +| --- | --- | --- | reco2 | MCP2025A_GoldenRun_LArv10_v10_04_03_reco2 | +| --- | --- | --- | calib tuple | MCP2025A_GoldenRun_LArv10_v10_04_03_histreco2 | +| --- | --- | --- | caf | MCP2025A_GoldenRun_LArv10_v10_04_03_caf | +| --- | --- | --- | flatcaf | MCP2025A_GoldenRun_LArv10_v10_04_03_flatcaf | | Feb25 Workshop - Calibration / CrossingMuons | v10_04_01_01 | - | raw | CalibData_18115_17934_CrossingMuon_raw | | --- | --- | --- | reco1 | MCP2025A_CalibDatawraw_18115_17934_CrossingMuon_v10_04_01_01_reco1_DATA_SBND | | BNB Summer 2024 Data | v09_93_01_01 | - | raw | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009 | @@ -513,7 +524,7 @@ Run list: 17625, 17635, 17648, 17658, 17660, 17662, 17664 | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | -| Calibration request | v09_93_01_01 | --- | calib tuple | polaris_v09_93_01_01_data_calibration_ntuple_sbnd | +| Winter 2024 calibration request | v09_93_01_01 | --- | calib tuple | polaris_v09_93_01_01_data_calibration_ntuple_sbnd | ### SBND MC -------------------------- From 3458f947e6cd7aed4dabe71de8845a0a99884e98 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 7 Mar 2025 00:05:51 +0000 Subject: [PATCH 1092/1437] Add CalibData v10_04_03 and update GoldenRun --- sbn/sbnprod_wiki/sample.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index c48c15955..2e5f2d162 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -437,13 +437,18 @@ Data SBN Production Samples | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | -| Feb25 Workshop - Run 18115 Zero Bias Data | v10_04_03 | 850k | decode | MCP2025A_GoldenRun_LArv10_v10_04_03_decode | +| Feb25 Workshop - Run 18115 Zero Bias Data | v10_04_03 | 860k | raw | GoldenRun_18115_ZeroBias_raw | +| --- | --- | --- | decode | MCP2025A_GoldenRun_LArv10_v10_04_03_decode | | --- | --- | --- | reco1 | MCP2025A_GoldenRun_LArv10_v10_04_03_reco1 | | --- | --- | --- | reco2 | MCP2025A_GoldenRun_LArv10_v10_04_03_reco2 | | --- | --- | --- | calib tuple | MCP2025A_GoldenRun_LArv10_v10_04_03_histreco2 | | --- | --- | --- | caf | MCP2025A_GoldenRun_LArv10_v10_04_03_caf | | --- | --- | --- | flatcaf | MCP2025A_GoldenRun_LArv10_v10_04_03_flatcaf | +| Feb25 Workshop - Calibration / CrossingMuons | v10_04_03 | - | raw | CalibData_18115_17934_CrossingMuon_raw | +| --- | --- | --- | decode | MCP2025A_CalibData_LArv10_v10_04_03_decode | +| --- | --- | --- | reco1 | MCP2025A_CalibData_LArv10_v10_04_03_reco1 | | Feb25 Workshop - Calibration / CrossingMuons | v10_04_01_01 | - | raw | CalibData_18115_17934_CrossingMuon_raw | +| --- | --- | --- | decode | MCP2025A_CalibDatawraw_18115_17934_CrossingMuon_v10_04_01_01_decode_DATA_SBND | | --- | --- | --- | reco1 | MCP2025A_CalibDatawraw_18115_17934_CrossingMuon_v10_04_01_01_reco1_DATA_SBND | | BNB Summer 2024 Data | v09_93_01_01 | - | raw | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009 | | --- | --- | --- | decode | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_decode | From a7aa4f352806f715db6361c217b1794c08e1192a Mon Sep 17 00:00:00 2001 From: Jacob Smith Date: Sat, 8 Mar 2025 15:47:26 -0500 Subject: [PATCH 1093/1437] Update icarus.md Clarify that the shift policy document listed on this page is for expert shifts and not general shifts. --- ExperimentDocuments/icarus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ExperimentDocuments/icarus.md b/ExperimentDocuments/icarus.md index 2be05c471..c646a620d 100644 --- a/ExperimentDocuments/icarus.md +++ b/ExperimentDocuments/icarus.md @@ -11,7 +11,7 @@ toc: false * ICARUS Institutions, members, and Institutional Board (IB) representatives: [https://icarus.fnal.gov/collaboration/](https://icarus.fnal.gov/collaboration/) * ICARUS Editorial and Speakers Board (ESB): [SBN-Doc-17328](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=17328) * ICARUS Analysis Blinding Policy: [SBN-Doc-34523](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=34523) -* ICARUS Shift Policy: [SBN-Doc-23913](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=23913) +* ICARUS Expert Shift Policy: [SBN-Doc-23913](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=23913) ## ICARUS Organizational Charts ## * Analysis and Software: [SBN-Doc-38529](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38529) From 80fc46dc78d1a30174202fc3410c2963fd765025 Mon Sep 17 00:00:00 2001 From: Jacob Smith Date: Sat, 8 Mar 2025 16:05:01 -0500 Subject: [PATCH 1094/1437] Update icarus.md Include information on ICARUS working groups and a calendar for regular working group meetings. --- ExperimentDocuments/icarus.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ExperimentDocuments/icarus.md b/ExperimentDocuments/icarus.md index c646a620d..1ccfaeea1 100644 --- a/ExperimentDocuments/icarus.md +++ b/ExperimentDocuments/icarus.md @@ -16,9 +16,15 @@ toc: false ## ICARUS Organizational Charts ## * Analysis and Software: [SBN-Doc-38529](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38529) +## ICARUS Working Group Descriptions ## +* The username and password required to access these pages are on the ICARUS ECL under the "projects" tab in the field labeled "Icarus Website Internal pages (password protected) username/password." +* Information on the working groups within ICARUS and contact information for the working group conveners can be found at [https://icarus-exp.fnal.gov/at_work/wg.html](https://icarus-exp.fnal.gov/at_work/wg.html). +* A calendar of regular working group meetings can be found at [https://icarus-exp.fnal.gov/at_work/meetings_b.html](https://icarus-exp.fnal.gov/at_work/meetings_b.html). + ## Repository for ICARUS Technical Notes +* The username and password required to access this page are on the ICARUS ECL under the "projects" tab in the field labeled "Icarus Website Internal pages (password protected) username/password." * ICARUS Technical Notes have been consolidated at the following location: [https://icarus-exp.fnal.gov/at_work/technical_notes.html](https://icarus-exp.fnal.gov/at_work/technical_notes.html) -* The username and password required to access that repository are on the ICARUS ECL under "projects," labeled "Icarus Website Internal pages (password protected) username/password" + ## Publicly Approved Plots ## From cdcc62d5508a4986f66cb0ecb6185a0ba2ae3abc Mon Sep 17 00:00:00 2001 From: Jacob Smith Date: Sat, 8 Mar 2025 16:07:47 -0500 Subject: [PATCH 1095/1437] Update icarus.md Remove the ICARUS Pride logo that contains a white background. The transparent background picture should be fine for general use, and this commit consolidates the information displayed on this webpage. --- ExperimentDocuments/icarus.md | 1 - 1 file changed, 1 deletion(-) diff --git a/ExperimentDocuments/icarus.md b/ExperimentDocuments/icarus.md index 1ccfaeea1..ce75dec4a 100644 --- a/ExperimentDocuments/icarus.md +++ b/ExperimentDocuments/icarus.md @@ -30,5 +30,4 @@ toc: false ## ICARUS Logos ## ![Unable to display image](ICARUS_new_logo.png "ICARUS new logo") -![Unable to display image](icarus_pride_logo.png "ICARUS pride logo") ![Unable to display image](icarus_pride_logo_transparent.png "ICARUS pride logo transparent") From b5285879a1b871a1af337c4258c5f0d32c01419a Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Mon, 10 Mar 2025 09:35:30 +0000 Subject: [PATCH 1096/1437] Create sbnana_v10_00_00.md --- .../Releases/sbnana_v10_00_00.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md new file mode 100644 index 000000000..112fa39b1 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md @@ -0,0 +1,35 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbnana v10_00_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Date +--------------------------------------------------- +10 March 2024 + +Purpose +--------------------------------------------------- +* weekly release + +New features +--------------------------------------------------- + +Following last week's release of sbnanaobj v10_00_00, a release of sbnana v10_00_00 has been cut and distributed. + +Updated dependencies: +sbnanaobj v10_00_00 +ifdhc v2_7_2 + +PRs Included: +- Add On/Off Systematics and save sigma values for NSigmaTree [#114](https://github.com/SBNSoftware/sbnana/pull/114): Add new SBNOnOffSyst class for those systematics which only have 1 sigma weights in the CAFs. Add new "_sigma" branches to NSigmaTree which stores the knob value for each weight. +- Updated selection for ICARUS Numu [#115](https://github.com/SBNSoftware/sbnana/pull/115) +- CalorimetrySysts made lazy [#119](https://github.com/SBNSoftware/sbnana/pull/119) - This PR is intended to solve [SBNSoftware/sbndata#8](https://github.com/SBNSoftware/sbndata/issues/8) and supersedes PR [#116](https://github.com/SBNSoftware/sbnana/pull/116), of which it integrates the functionality. + +Extra info +--------------------------------------------------- From a1a237866dc66abca7fba3674f17f103cb08964c Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Mon, 10 Mar 2025 09:57:28 +0000 Subject: [PATCH 1097/1437] Create sbncode_v10_04_05.md --- .../Releases/sbncode_v10_04_05.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_05.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_05.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_05.md new file mode 100644 index 000000000..1ddea6f3f --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_05.md @@ -0,0 +1,39 @@ +--- +layout: page +title: sbncode_v10_04_05 +toc: true +--- + +sbncode_v10_04_05 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v10_04_05 and v10_04_04](https://github.com/SBNSoftware/sbncode/compare/v10_04_04...v10_04_05) + +Date +--------------------------------------------------- +10 March 2025 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode (v10_04_05) has been cut and distributed + +* sbncode (v10_04_05): + + Using (updated dependencies): + * larsoft v10_04_05 + * sbnobj v10_00_06 + + Includes: + + * Update supera tag [#514](https://github.com/SBNSoftware/sbncode/pull/514) Points to [updated Supera](https://github.com/SBNSoftware/sbncode/pull/514/commits/dcc092ae86a41d897385456c10e2f907177f5bff) with [Supera/#56](https://github.com/DeepLearnPhysics/Supera/pull/56) + + +Extra info +--------------------------------------------------- +Uses LArSoft v10_04_05, [release notes here](https://github.com/LArSoft/larsoft/releases/tag/v10_04_05). From 0d26da978099a27b09dc1fcca516898f21478dc0 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Mon, 10 Mar 2025 10:10:53 +0000 Subject: [PATCH 1098/1437] Update sbnana_v10_00_00.md --- .../ReleaseManagement/Releases/sbnana_v10_00_00.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md index 112fa39b1..d759f1668 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md @@ -11,7 +11,7 @@ sbnana v10_00_00 Release Notes Date --------------------------------------------------- -10 March 2024 +10 March 2025 Purpose --------------------------------------------------- From 260516791d897ef1b0fa8e694ec6e54d2ba41362 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Tue, 11 Mar 2025 09:56:16 -0700 Subject: [PATCH 1099/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 43b937351..ed113f2e4 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_04_05`. | Weekly release. | [Release Notes](ReleaseNotes100405.html) |`v10_04_03`. | Weekly release. | [Release Notes](ReleaseNotes100403.html) |`v10_04_01_01`. | Patch release. | [Release Notes](ReleaseNotes10040101.html) |`v10_04_01`. | Weekly release. | [Release Notes](ReleaseNotes100401.html) From d95e2bef1b8da9534e69283c7e40548fdde36190 Mon Sep 17 00:00:00 2001 From: Bear Carlson Date: Tue, 11 Mar 2025 09:56:55 -0700 Subject: [PATCH 1100/1437] Create ReleaseNotes100405.md --- sbndcode_wiki/Releases/ReleaseNotes100405.md | 210 +++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes100405.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes100405.md b/sbndcode_wiki/Releases/ReleaseNotes100405.md new file mode 100644 index 000000000..48bc4bced --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes100405.md @@ -0,0 +1,210 @@ +--- +layout: page +title: ReleaseNotes100405 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.04.05 | 11 Mar 2025 | [ReleaseNotes](ReleaseNotes100405.html) | +| --- | --- | --- | + + + +sbndcode v10_04_05 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_04_05](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_04_05/sbndcode-v10_04_05.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_04_03 to v10_04_05 +- PR #593: Feature/maxd post581 p rfix + - **Description**: There were minor adjustments to PR 581 that didn't make it in. It requires at least sbndaq_artdaq_core v1_10_03 to run. + - **Labels**: + - **Reviewers**: bear-is-asleep + - **Assignees**: lyates17 +- PR #620: Adding fcls for Production + - **Description**: This adds the functionality to run full osc and intrinsic nue samples with the space-charge hack. It also includes `drop` commands *into our standard workflow* to reduce our `reco1` file-size from 130 MB/event to 20 MB/event. I tested these through the [full workflows](https://docs.google.com/document/d/11Hdo6z2nMWi5fefFN_-TbtyaOFcm7rPL5cDKQ6HoTaA/edit?usp=sharing) and things worked. + - **Labels**: enhancement + - **Reviewers**: lynnt20 + - **Assignees**: jzennamo +- PR #626: Add possible HLTs for CRT time referencing + - **Description**: Following discussion with Tereza & Lynn these trigger types should also be added as legitimate event triggers. They correspond to NS & EW crossing muon triggers (originally we thought we had covered this with 5). Relevant documentation is here: https://cdcvs.fnal.gov/redmine/projects/sbnd/wiki/Trigger_Type_Definitions + - **Labels**: crt, reco1/reco2, data + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #641: CRT Channel Status + - **Description**: This adds to the CRT calibration service with a list of bad channels. Like the pedestals and timing offsets these are filled from a text file. The service then denotes the channels (and their paired channel) with the correct labels using the enumeration provided in SBNSoftware/sbnobj119. Only bad channels are specified - the default value is good (0). The status is then used to skip over bad channels in the first stage of the CRT reconstruction. (It is also used in an Analyzer used for CRT calibrations which will soon be provided in a separate PR). The PR will remain a draft until after this week's CRT meeting where a decision on the two channels labelled as quiet (3) will be made. + - **Labels**: crt, data + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #643: Change CRT in calib ntuples + - **Description**: Having discussed with the reviewers offline - the CRT element of the calibration ntuples can be changed from Sungbin's module (which was originally based on the CRT group's CRTAnalysis module) to using the CRTAnalysis module itself. This module has been updated significantly for data so it also allows us to turn them back on for data (which wasn't possible with the old module). I remove the old fcl & module (happy to retain if people would rather) and link the CRTAnalysis module to the relevant places. The tree size is very similar to that of the old module. For data this means an increase in the total "hist" file size (although the ntuple tree size doesn't change as they are two separate trees) because previously we were not running any CRT module but in MC it represents ~ no change. + - **Labels**: crt + - **Reviewers**: mrmooney, sungbinoh + - **Assignees**: henrylay97 +- PR #644: Add saving picosecond value in decoded TDC + - **Description**: The fix introduces a new variable `timestampPs` in the decoded TDC object `sbnd::timing::DAQTimestamp` located in sbnobj repo. It also enables the TDC decoder to save the new variable in the decoding process. If analyser want to access the new variable `timestampPs` in an older version of sbnd::timing::DAQTimestamp, it is defaulted to be 0 to prevent breaking in backward compatability. + - **Labels**: enhancement, data + - **Reviewers**: + - **Assignees**: VCLanNguyen +- PR #647: Add fcls to run OpT0Finder on data + - **Description**: Adds new fcl blocks to including running OpT0Finder in data reco2 stage. This is meant to be a first-pass inclusion of flash-matching for data; more validation and testing to come! This may increase the number of OpT0Finder matches in simulation; a requirement on the neutrino-likeness of a `recob::Slice` has been loosened (we now accept anything that is not a clear cosmic, rather than requiring that the reco chain has identified a specific neutrino type within a given slice). Data configurations to note: - global scaling from 1.0 -> 0.25 to match approximate light yield seen in data. - The allowed time range for in-beam light is currently -1 to 5 us; the reference time for BNB+Light streams is the SPEC TDC ETRIG, which may move with light arrival time (t=0 is not aligned with the beam acceptance), so I increase the time range available. - should have interfacing with the calibration database in the near future to grab TPC gain calibration constants and PMT channel numbers to mask. + - **Labels**: data + - **Reviewers**: absolution1, yangtj207 + - **Assignees**: lynnt20 +- PR #657: Add fcl configuration TwoBodyAnisotropyIncludeInterference to match s… + - **Description**: + - **Labels**: enhancement + - **Reviewers**: jicrespo, jberger7 + - **Assignees**: LuisPelegrina +- PR #661: Use doublets in Cluster3D + - **Description**: Use doublets instead of triplets. 4-5x larcv file size, increases RAM useage. Space 2.4 GB -> 12 GB for 1k MPVMPR events RAM Doublets: - Peak virtual memory usage (VmPeak) : 5729.37 MB - Peak resident set size usage (VmHWM): 4295.55 MB Triplets: - Peak virtual memory usage (VmPeak) : 3292.9 MB - Peak resident set size usage (VmHWM): 1934.36 MB + - **Labels**: reco1/reco2 + - **Reviewers**: yangtj207, ggamezdiego + - **Assignees**: bear-is-asleep +- PR #668: Feature/sungbin emb4data + - **Description**: Updating TPC dQ/dx to dE/dx recombination model to EMB from MB for data. (MC is already using EMB.) Updating TPC gain calibration constants for MC and Data. Used samples - Data: Run 17665 (v09_03_01_01) calibration ntuples `(samweb list-files "production.type polaris and sbnd_project.stage reco2 and file_name like hist%")` - MC: 2025 Feb Workshop MC sample, v10_04_1 + timing offset bug fix For plots and numbers, please refer to [sbn-docdb-40108](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=40108). Calibration constants with inclusive measurements are used. + - **Labels**: reco1/reco2 + - **Reviewers**: yangtj207 + - **Assignees**: sungbinoh +- PR #670: Revert "TEMPORARY CHANGE: Disable vertex refinement in pandora" + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #671: Ensure deposits from all CRT types are retained when merging multiple geant outputs + - **Description**: Bug found during Analysis Workshop. GDML adopted in December/January introduced a number of new "types" of CRT. These need explicity listing in this fcl otherwise the energy deposits in them get dropped in any MC workflows with multiple geant4 instances (like rockbox or intime samples). Our MC testing was done with a pure cosmics sample so we didn't encounter this. For anyone looking at the samples - this impacts the Top & some of the North CRTs. + - **Labels**: bug, crt, simulation + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #672: Stop pretending to simulate the PPS + - **Description**: We don't need to pretend to simulate the PPS - assigning it to a random value for every piece of activity doesn't replicate what actually happens in data. In data reconstruction we reference the T0 to the event trigger, thus replicating closely what T1 represents in the simulation. In aid of simplifying concepts and making data / MC comparisons easier I am suggesting we move to make T0 & T1 the same in MC. + - **Labels**: crt, detsim + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #674: Adding data workflow into the CI + - **Description**: Adding data workflow into the CI. 8 new tests have been created which run on 5 events from run 18266 (off beam zero bias). New tests being added: - data_offBeamZeroBias_decoders_quick_test_sbndcode - data_offBeamZeroBias_decoders_seq_test_sbndcode - data_offBeamZeroBias_reco1_quick_test_sbndcode - data_offBeamZeroBias_reco1_seq_test_sbndcode - data_offBeamZeroBias_reco2_quick_test_sbndcode - data_offBeamZeroBias_reco2_seq_test_sbndcode - data_offBeamZeroBias_caf_quick_test_sbndcode - data_offBeamZeroBias_caf_seq_test_sbndcode This has been tested for both the normal workflow and the update reference file workflow, both work as expected. The trigger of the update reference file workflow can be seen [here](https://dbweb8.fnal.gov:8443/LarCI/app/ns:SBND/view_builds/index?offset=0&builds=sbnd_ci_test/555&builds=). + - **Labels**: test + - **Reviewers**: + - **Assignees**: RachelCoackley +- PR #675: Use pandoraSCE for MC by default. + - **Description**: Use pandoraSCE for MC by default. + - **Labels**: reco1/reco2 + - **Reviewers**: + - **Assignees**: yangtj207 + + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-03-11 Brinden Carlson : Merge branch 'release/v10_04_05' +* 2025-03-11 Brinden Carlson : Update to sbncode v10_04_05 +* 2025-03-10 Bear Carlson : Merge pull request #677 from SBNSoftware/revert-676-feature/bearc_crt_calib_fix +* 2025-03-10 Bear Carlson : Revert "CRT Calib Fix" +* 2025-03-10 Bear Carlson : Merge pull request #676 from SBNSoftware/feature/bearc_crt_calib_fix +* 2025-03-10 Brinden Carlson : Remove crt skim from reco workflow +* 2025-03-10 Brinden Carlson : Remove crt skim from reco workflow +* 2025-03-10 Brinden Carlson : Remove crt skim from reco workflow +* 2025-03-10 Bear Carlson : Merge pull request #675 from yangtj207/feature/tjyang_cvn +* 2025-03-10 Tingjun Yang : Revert change to ups/product_deps. +* 2025-03-10 Tingjun Yang : Merge remote-tracking branch 'upstream/develop' into feature/tjyang_cvn +* 2025-03-10 Bear Carlson : Merge pull request #674 from SBNSoftware/feature/coackley_ciDataWorkflow +* 2025-03-10 Bear Carlson : Merge pull request #672 from SBNSoftware/feature/hlay_crt_sim_times +* 2025-03-10 Bear Carlson : Merge pull request #671 from SBNSoftware/bugfix/hlay_crt_merge_sim_sources +* 2025-03-10 Bear Carlson : Merge pull request #670 from SBNSoftware/revert-659-dbrailfs_pandoradisablevertexrefinement_temporary +* 2025-03-10 Bear Carlson : Merge pull request #668 from SBNSoftware/feature/sungbin_emb4data +* 2025-03-10 Bear Carlson : Merge pull request #661 from SBNSoftware/feature/bearc_cluster3d_doublets +* 2025-03-10 Bear Carlson : Merge pull request #657 from SBNSoftware/feature/lpelegri_HNL2BodyAnisotropies +* 2025-03-10 Bear Carlson : Merge pull request #647 from SBNSoftware/feature/lynnt_opt0finder_data +* 2025-03-10 Bear Carlson : Merge pull request #644 from SBNSoftware/feature/lnguyen_decodedTDC_ps +* 2025-03-10 Bear Carlson : Merge pull request #643 from SBNSoftware/feature/hlay_change_crt_calib_ntuples +* 2025-03-10 Bear Carlson : Merge pull request #641 from SBNSoftware/feature/hlay_crt_channel_status +* 2025-03-10 Bear Carlson : Merge pull request #626 from SBNSoftware/feature/hlay_crt_timing_hlt_types +* 2025-03-10 Bear Carlson : Merge pull request #620 from SBNSoftware/feature/zennamo_addingfcls_forMarch25 +* 2025-03-10 Bear Carlson : Merge pull request #593 from SBNSoftware/feature/maxd_Post581PRfix +* 2025-03-10 Tingjun Yang : Add comment about the pandora label. +* 2025-03-10 Rachel : Added in comments +* 2025-03-08 Tingjun Yang : Use pandoraSCE for MC by default. +* 2025-03-06 Rachel Coackley : Changed data quick tests to run 2 events (instead of 5) +* 2025-03-05 Rachel : Adding in comments +* 2025-03-05 Rachel : Adding comments +* 2025-03-04 Henry Lay : Fix running issue for MC +* 2025-03-04 Henry Lay : Merge remote-tracking branch 'origin/develop' into feature/hlay_change_crt_calib_ntuples +* 2025-03-03 L. Yates : Fix typo in PTBAnalysis_module.cc that caused a build error +* 2025-03-03 Rachel : Fix mistake +* 2025-03-03 Rachel : Fix mistakes +* 2025-03-03 lynnt20 : Merge branch 'develop' into feature/lynnt_opt0finder_data +* 2025-03-03 Rachel Coackley : fixed caf seq test +* 2025-02-28 lynnt20 : fix formatting for reco2 data fcl +* 2025-02-28 lynnt20 : update slice selection (ignore clear cosmics), and add scaling factor +* 2025-02-28 Henry Lay : Stop pretending to simulate PPS +* 2025-02-28 Henry Lay : Ensure all CRT types are listed in merge sim sources +* 2025-02-28 Rachel Coackley : fixed sbnd.fcl to sbndcode.fcl +* 2025-02-28 Dom Brailsford : Revert "TEMPORARY CHANGE: Disable vertex refinement in pandora" +* 2025-02-28 Rachel Coackley : adding caf tests back in +* 2025-02-28 Rachel Coackley : Adding caf fcls +* 2025-02-28 Rachel : Delete test/ci/sbnd_ci_data_offBeamZeroBias_caf_quick_test_sbnd.fcl +* 2025-02-28 Rachel : Delete test/ci/sbnd_ci_data_offBeamZeroBias_caf_seq_test_sbnd.fcl +* 2025-02-28 Rachel Coackley : Added in some comments, removed caf test from being ran, changed cpu and mem usage limits +* 2025-02-28 Rachel Coackley : Added in a data caf test +* 2025-02-28 Rachel Coackley : Merge branch 'feature/coackley_ciDataWorkflow' of github.com:SBNSoftware/sbndcode into feature/coackley_ciDataWorkflow +* 2025-02-28 Rachel Coackley : Choppy decoded file is not longer outputted, only filtered decoded file is +* 2025-02-27 sungbinoh : Following Dom's suggestions +* 2025-02-27 Rachel : Removing a typo +* 2025-02-27 Rachel Coackley : Adding the data workflow to the CI - initial +* 2025-02-26 sungbinoh : TPC c_cal updates for both MC and data. Data is based on Run 17665. +* 2025-02-26 sungbinoh : Updating data recombination model for TPC dE/dx to EMB from MB +* 2025-02-25 Max Dubnowski : Update PTBAnalysis_module.cc to read nLLT instead of nHLT +* 2025-02-24 Brinden Carlson : Merge tag 'v10_04_03' into develop +* 2025-02-24 Bear Carlson : Update cluster_sbnd.fcl +* 2025-02-20 Henry Lay : Actually on skip explicitly dead channels +* 2025-02-21 Luis Pelegrina Gutiérrez : Add fcl configuration TwoBodyAnisotropyIncludeInterference to match sbncode release +* 2025-02-19 lynnt20 : first commit of fcls to run opt0finder on data +* 2025-02-19 Vu Chi Lan Nguyen : add saving picosecond value +* 2025-02-19 Henry Lay : Also remove defunct module +* 2025-02-19 Henry Lay : Use crtana in place of old crtskim +* 2025-02-19 Henry Lay : Remove need for crtskim to exist +* 2025-02-19 Henry Lay : Make crtana fcls properly tabled +* 2025-02-18 Henry Lay : Move to c++ strings +* 2025-02-18 Henry Lay : Better use of enums +* 2025-02-17 Henry Lay : Fix typos +* 2024-11-28 Henry Lay : Fix typo +* 2024-11-28 Henry Lay : Point fcl at bad channel file +* 2024-11-28 Henry Lay : Make channel status accessible through GeoAlg +* 2025-02-13 Henry Lay : Skip dead channels +* 2024-11-28 Henry Lay : Add bad channels to calib services +* 2025-02-09 Max Dubnowski : Update PTBAnalysis_module.cc +* 2025-02-09 Max Dubnowski : Update SBNDPTBDecoder_module.cc +* 2025-02-09 Max Dubnowski : Update sbndptb.h +* 2025-02-09 Max Dubnowski : Update sbndcode/Decoders/PTB/SBNDPTBDecoder_module.cc +* 2025-02-05 Henry Lay : Add possible HLTs for CRT time referencing +* 2025-01-31 jzennamo : adding fcls for March production +* 2025-01-24 Bear Carlson : Update ups/product_deps +* 2025-01-13 Max : Correcting versioning +* 2025-01-13 Max : Post 581 PR adjustments + +sbndutil +--------------------------------------------------- + +* 2025-03-11 Brinden Carlson : Merge tag 'v10_04_05' into develop +* 2025-03-11 Brinden Carlson : Merge branch 'release/v10_04_05' +* 2025-03-11 Brinden Carlson : Update to sbncode v10_04_05 +* 2025-02-24 Brinden Carlson : Merge tag 'v10_04_03' into develop From b37715ee11d0c35c691b9458f30a4d768220a12d Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Wed, 12 Mar 2025 20:48:55 +0000 Subject: [PATCH 1101/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 19e96f96b..333e78e32 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,9 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v10_04_05` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_05) +'sbnana' `v10_00_00` | 'sbnana' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00) +`v10_04_04` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_04) `v10_04_03` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_03) `v10_04_01` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_04_01) `v10_01_03` | 'sbncode' weekly release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_01_03) From 6e252ddcf7aaaf6cb4a71856346cfc044000d918 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 13 Mar 2025 15:40:42 -0500 Subject: [PATCH 1102/1437] Update Spack-Development-Tutorial.md --- sbn_online_wiki/Spack-Development-Tutorial.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbn_online_wiki/Spack-Development-Tutorial.md b/sbn_online_wiki/Spack-Development-Tutorial.md index d165da4c0..dc860563a 100644 --- a/sbn_online_wiki/Spack-Development-Tutorial.md +++ b/sbn_online_wiki/Spack-Development-Tutorial.md @@ -54,15 +54,15 @@ This step ensures your current working directory is the environment directory yo Add the `sbndaq-suite` package and its specific configuration, and set up the `sbndaq-artdaq` package for development: ```sh -spack add sbndaq-suite@v1_10_05 s=131 %gcc@12.1.0 arch=x86_64_v2 -spack develop sbndaq-artdaq@v1_10_05 +spack add sbndaq-suite@v1_10_06 s=131 %gcc@12.1.0 arch=x86_64_v2 +spack develop sbndaq-artdaq@v1_10_06 ``` -- `spack add sbndaq-suite@v1_10_05`: Adds the `sbndaq-suite` package version `v1_10_05` to the environment. +- `spack add sbndaq-suite@v1_10_06`: Adds the `sbndaq-suite` package version `v1_10_06` to the environment. - `s=131`: Specifies the package variants or options. - `%gcc@12.1.0`: Specifies the compiler to use (GCC version 12.1.0). - `arch=x86_64_v2`: Specifies the target architecture. -- `spack develop sbndaq-artdaq@v1_10_05`: Marks the `sbndaq-artdaq` package version `v1_10_05` for development, meaning its source code will be added to the environment for easy editing. +- `spack develop sbndaq-artdaq@v1_10_06`: Marks the `sbndaq-artdaq` package version `v1_10_06` for development, meaning its source code will be added to the environment for easy editing. ## Step 5: Concretize the Environment @@ -139,7 +139,7 @@ Here are some useful examples of interacting with Spack after setting up and wor To list all installed versions of the `sbndaq-suite` package with detailed information: ```sh -spack find -lpvf sbndaq-suite@v1_10_05 +spack find -lpvf sbndaq-suite@v1_10_06 ``` - `-l`: Displays package hashes. @@ -152,7 +152,7 @@ spack find -lpvf sbndaq-suite@v1_10_05 To load the specified version of the `sbndaq-suite` package into your current shell environment: ```sh -spack load sbndaq-suite@v1_10_05 %gcc@12.1.0 s=131 +spack load sbndaq-suite@v1_10_06 %gcc@12.1.0 s=131 ``` - `%gcc@12.1.0`: Specifies the compiler version. From 45940363bf0d3312abc69b7885ed8fbd0bf1cfb5 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Thu, 13 Mar 2025 15:42:04 -0500 Subject: [PATCH 1103/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index d2d792539..7cff4e494 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe26:s131:prof ``` -It's recommended you use the latest available version (this is currently v1_10_05 as of 02/2025) with e26:prof:s131 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_10_06 as of 03/2025) with e26:prof:s131 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe26:prof:s131 ``` @@ -88,7 +88,7 @@ mrb g *Note:* you may need to do some setup of your github account with proper SSH keys. See [here](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh).) *Note:* This will pull from the HEAD of the develop branch and include any changes that may have been pushed since the last tag (`v#_##_##`) was created. Alternatively, if you want to build the tagged, working version that was set up in the previous steps, directly: ```bash -mrb g @ +mrb g @ ``` improve write performance - CompressionLevel: 501 → LZ4, compression level 1 - - Reduces file size factor of ~3-4; final size ~150 MB per event -- 50 events per file → 7.6 GB files + - Reduces file size factor of ~3-4; final size ~82 MB per event (with TPC compression) +- 50 events per file → 4.1 GB files - In the 1-10 GB range preferred for tape storage - Number and location of EventBuilders specified in `boot.txt` configuration file - EventBuilders get events ‘round-robin → if n EventBuilders, event j goes to (j%n )th EventBuilder - Each icarus-evb server has 23 TB of RAID-backed disk - - Across 6 servers, that’s enough for over 900K events, or ~250 hours of data at 1 Hz trigger rate ### File names For example: -data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: -- dl --> Data Logger -- fstrmOffBeamBNBMINBIAS --> file stream name -- run9093 --> run number -- 160 --> nth file from this EVB for this run -- 20221110T113956 --> file open timestamp +data_run13474_EventBuilder9_art9_4_fstrmOffBeamMINBIASCALIB_20250816T012911.root, where: +- run13474 --> run number +- EventBuilder9_art9 --> application name +- 4 --> nth file from this EVB for this run +- fstrmOffBeamMINBIASCALIB --> file stream name +- 20250816T012911 --> file open timestamp ### What happens to files - EventBuilder writes file to /data/daq area @@ -53,13 +52,10 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: ## Xporter -Repository: -https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter +Repository: [https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter](https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter) - There is a cron job [xporter_crontab.ctab](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/xporter_crontab.ctab) that runs the xporter process [runXporter.sh](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runXporter.sh). That cron job starts a new one job every minute. - The job should check to see if there is a lock file to see if another one is running. If so, it should say so in the log file, and exit. There are actually two checks for this: one in the runXporter.sh script directly run by cron, and another in the python code itself. Which means ... you can get 'in progress/do not run' messages in the log file while there still is an xporter process running. That's by design. - - Perhaps it's not wise to have two processes writing to the same log file? -- The ongoing xporter process will drift in and out of D state as it runs. I think this is normal. I think that one should not assume if you see the process in D state that it is dead. - Xporter needs to communicate with both UconDB DB (postgres) and MongoDB to run - What Xporter does: - First moves the files @@ -87,9 +83,9 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter ## File Transfer System -- Link: https://cdcvs.fnal.gov/redmine/projects/sam/wiki/File_Transfer_Service_Information +- Link: [https://cdcvs.fnal.gov/redmine/projects/sam/wiki/File_Transfer_Service_Information](https://cdcvs.fnal.gov/redmine/projects/filetransferservice/wiki) - FTS is setup to look for files + metadata file in a “dropbox”, and then transfer them according to rules in configuration files. [Configs for ICARUS](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/FTS_config/icarus-evb_fts_config.ini) -- It runs as a daemon → don’t need to put in crontab +- FTS is old, and can not be run on AL9 without significant complications, if at all. To preserve the application for continued use, Fermilab provides prebuilt FTS container image to work with Podman. - FTS_config has setup/start/stop/restart [scripts](https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/FTS_config) - Run as icarusraw user - Linked to offline production certificates @@ -100,7 +96,7 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - FTS will do this check, but sometimes lookup to SAM DB can be particularly slow - An additional script [runManualFTSFileCleanup.sh](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runManualFTSFileCleanup.sh) runs in icarus crontab twice a day to try to do this faster. This script can also be called with an option `ManualFTSFileCleanup.py ONLINE`, which will make it delete files which are copied to dCache, without requirement of them to be copied to the tape. This is to be used only when the local disks are overfilling during high data rate tests. - Monitoring page: - https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-12h&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb05&var-instance=icarus-fts-icarus-evb06 + [https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-12h&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb06&var-instance=icarus-fts-icarus-evb12](https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-12h&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb06&var-instance=icarus-fts-icarus-evb12) - Files declared → declared to SAM (not yet transferred) - Data transferred → data FTS knows it moved - In progress will show new, pending (for transfer), waiting for tape (what it sounds like) @@ -114,8 +110,8 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - Usually we notice problems if /data starts getting full - Check if Xporter or FTS logs have errors. For example: - Xporter → usually can’t make metadata, e.g. can’t connect to RunHistory DB or weird file name - - FTS → usually has problem with metadata or CRL certificates need refresh: metadata keys and some values, like data_tier and data_stream, must be registered in SAM → talk to offline production! For certificates: systemctl status fetch-crl-cron ... if dead,needs restart (as root). Can also run by hand: fetch-crl - - if you need to restart the FTS service, run the following script: ~icarus/FileTransfer/sbndaq-xporter/FTS_config/restart_fts.sh on one of the eventbuilder machines. This should restart the FTS system. + - FTS → usually has problem with metadata or CRL certificates need refresh: metadata keys and some values, like data_tier and data_stream, must be registered in SAM → talk to offline production! For certificates: systemctl status fetch-crl-cron ... if dead, needs restart (as root). Can also run by hand: fetch-crl + - if you need to restart the FTS service, run the following script: `~icarus/FileTransfer/sbndaq-xporter/FTS_config/restart_fts.sh` on one of the eventbuilder machines. This should restart the FTS system. - Talk to offline! - Maybe some massive problem with tape ... if files don’t get locations on tape, then they won’t be removed from online cluster @@ -143,14 +139,14 @@ samweb -e icarus retire-file ## Monitoring ### grafana The following page provides overview of FTS from all Event Builder Machines: -https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-30d&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb05&var-instance=icarus-fts-icarus-evb06 +[https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-12h&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb06&var-instance=icarus-fts-icarus-evb12](https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-12h&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb06&var-instance=icarus-fts-icarus-evb12) ### FTS status Tunnel required: -```ssh -KL 8787:localhost:8787 icarus@icarus-evb01.fnal.gov -J icarus@icarus-gateway01.fnal.gov``` +```ssh -KL 8787:localhost:8787 icarus@icarus-evb12.fnal.gov -J icarus@icarus-gateway04.fnal.gov``` -http://localhost:8787/fts/status +[http://localhost:8787/fts/status](http://localhost:8787/fts/status) Provides more details for a single EVB, in particular status of individual files. It also allows to attempt to clear errors with "retry" buttons. @@ -158,7 +154,7 @@ Provides more details for a single EVB, in particular status of individual files Requires VPN, or web browser certificate -https://fndca.fnal.gov:22880/pools/list/PoolManager +[https://fndca.fnal.gov:22880/pools/list/PoolManager](https://fndca.fnal.gov:22880/pools/list/PoolManager) Provides information on status of the usage of the IcarusReadWritePools space. From 61770c5447d79d0e075a1c545073a7429db57f88 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Tue, 19 Aug 2025 17:19:46 -0500 Subject: [PATCH 1230/1437] Create sbncode_v10_09_00.md --- .../Releases/sbncode_v10_09_00.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_09_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_09_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_09_00.md new file mode 100644 index 000000000..e4361258c --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_09_00.md @@ -0,0 +1,74 @@ +--- +layout: page +title: sbncode_v10_09_00 +toc: true +--- + +sbncode_v10_09_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v10_06_00_04 and v10_09_00](https://github.com/SBNSoftware/sbncode/compare/v10_06_00_04...v10_09_00) + +Date +--------------------------------------------------- +11 August 2025 + +Purpose +--------------------------------------------------- +* Feature release + +New features +--------------------------------------------------- +A new release of sbncode (v10_09_00) has been cut and distributed + +* sbnobj (v10_01_02): + + Using(updated dependencies): + + * lardataobj v10_02_00 + + Includes: + + * synchronise to sbnanaobj/StandardRecord/SREnums.h [#128](https://github.com/SBNSoftware/sbnobj/pull/128) : Companion to [sbnanaobj/#110](https://github.com/SBNSoftware/sbnanaobj/pull/110) + * Move PMTBeamSignal data product from icaruscode to sbnobj [#130](https://github.com/SBNSoftware/sbnobj/pull/130): Moves PMTBeamSignal to SBN-wide repo and adds helper functions to reconstruct beam bunch structure in ICARUS. + +* sbnanaobj (v10_00_06): + + Includes: + + * Use `kDefaultRWType` for the default `ReweightType_t` [#110](https://github.com/SBNSoftware/sbnanaobj/pull/110) : Renames `ReweightType_t::kDefault` to `ReweightType_t::kDefaultRWType` + * Add PMT Beam Signal timing to ICARUS CAFs [#141](https://github.com/SBNSoftware/sbnanaobj/pull/141) : Adds new variable to SROpFlash storing OpFlash time with respect to RWM time. + +* sbnalg (v10_09_00): + + Using(updated dependencies): + + * lardataalg v10_01_01 + * sbnobj v10_01_02 + * sbnanaobj v10_00_06 + +* sbncode (v10_09_00): + + Using (updated dependencies): + + * genie_xsec v3_06_00 + * larsoft v10_09_00 + * sbnalg v10_09_00 + + Includes: + + * Update explicit references to `EventWeightParameterSet::kMultisim` [#530](https://github.com/SBNSoftware/sbncode/pull/530) : Companion to Companion to [sbnanaobj/#110](https://github.com/SBNSoftware/sbnanaobj/pull/110) + * Add PMT Beam Signal timing to ICARUS CAFs [#541](https://github.com/SBNSoftware/sbncode/pull/541) : Reads the RWM into CAFMaker, enabling reconstruction of beam bunch structure seen by ICARUS PMTs. + +Extra info +--------------------------------------------------- +Note the change in capitalisation for `kMultisim`, which is now `kMultiSim` across the entire codebase. +Uses LArSoft v10_09_00. Release notes for the last few LArSoft suites here: +* [LArSoft v10_07_00 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_07_00) +* [LArSoft v10_08_00 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_08_00) +* [LArSoft v10_08_01 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_08_01) +* [LArSoft v10_08_02 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_08_02) +* [LArSoft v10_08_03 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_08_03) +* [LArSoft v10_09_00 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_09_00) From 7bdcec8fcc7a5c6bdd6a61fab8a8c47fc195ec00 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Tue, 19 Aug 2025 17:20:39 -0500 Subject: [PATCH 1231/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index a18497f28..f4c787193 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v10_09_00` | 'sbncode' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_09_00) `v10_06_00_04` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_04) 'sbnana' `v10_01_01` | 'sbnana' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_01) `v10_06_00_03` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_03) From 895c85bbd199f98b2124a2ddc9e738194b6e37f0 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Sun, 24 Aug 2025 17:05:40 -0500 Subject: [PATCH 1232/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index f7f2c74c7..c99a1b593 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -174,6 +174,7 @@ icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_ | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| BNB neutrino + cosmics | MC2024A | v09_89_01_01 | 200k | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_calibtuple| | BNB nu only sample (CV) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_larcv | From 58ae5c71a73242be8fdc6de5120c08e1356cf99f Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Sun, 24 Aug 2025 17:21:33 -0500 Subject: [PATCH 1233/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index c99a1b593..bc137bcfc 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -174,7 +174,23 @@ icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_ | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| NuMI neutrino + cosmics | MC2025A | v09_89_01_02p02 | 200k | stage1 | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_calibtuple | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_flatcaf | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_larcv | +| --- | --- | --- | --- | --- | --- | +| BNB neutrino + cosmics (Respun) | MC2024A | v09_89_01_02p01 | 200k | stage1 | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_stage1 | +| --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_calibtuple | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_flatcaf | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_larcv | +| --- | --- | --- | --- | --- | --- | | BNB neutrino + cosmics | MC2024A | v09_89_01_01 | 200k | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_calibtuple| +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_caf| +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_flatcaf| +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_larcv| +| --- | --- | --- | --- | --- | --- | | BNB nu only sample (CV) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_larcv | From bfd14fc9c26cc32209029b6f3d26961d14397a58 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Sun, 24 Aug 2025 17:28:55 -0500 Subject: [PATCH 1234/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index bc137bcfc..14b035e35 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -514,7 +514,12 @@ Data SBN Production Samples ### ICARUS Reconstructed DATA -------------------------- - +| Sample Description | release version | # Events | File type | Samweb definition | +| --- | --- | --- | --- | --- | +| Run2 reprocessed BNB majority | v09_89_01_01p03 | --- | stage1 | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_stage1 | +| --- | --- | --- | caf | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_blind, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_unblid, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_prescaled | +| --- | --- | --- | flatcaf | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_blind, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_unblid, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | +| --- | --- | --- | larcv | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_larcv | ### Notes on samples ### * Run 1 reprocessing is the reprocessing of selected runs based on the good run list created by Gray and Minerba. Please refer to this docdb for the list of runs: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=25407&filename=ICARUS%20Data%20Re-Processing.pdf&version=1 * Run 1 batch 2 is the processing of run_number > 7621 and run_number < 8460 (before the update to the new DAQ configuration) From 70f4eb7348ecedb6c589ffbdc8a925c9922cbac3 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Sun, 24 Aug 2025 18:06:18 -0500 Subject: [PATCH 1235/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 14b035e35..e2bf44ee4 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -520,6 +520,8 @@ Data SBN Production Samples | --- | --- | --- | caf | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_blind, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_unblid, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_prescaled | | --- | --- | --- | flatcaf | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_blind, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_unblid, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_larcv | +|Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind, Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_unblind, Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_prescaled | +| --- | --- | --- | flatcaf | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_blind, Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_unblind, Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_prescaled | ### Notes on samples ### * Run 1 reprocessing is the reprocessing of selected runs based on the good run list created by Gray and Minerba. Please refer to this docdb for the list of runs: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=25407&filename=ICARUS%20Data%20Re-Processing.pdf&version=1 * Run 1 batch 2 is the processing of run_number > 7621 and run_number < 8460 (before the update to the new DAQ configuration) From 04cce084c732e84ca29c20660b0e6cbcdf39b881 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Sun, 24 Aug 2025 18:20:45 -0500 Subject: [PATCH 1236/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index e2bf44ee4..e95d25499 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -517,11 +517,22 @@ Data SBN Production Samples | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | | Run2 reprocessed BNB majority | v09_89_01_01p03 | --- | stage1 | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_stage1 | -| --- | --- | --- | caf | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_blind, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_unblid, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_prescaled | -| --- | --- | --- | flatcaf | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_blind, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_unblid, Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | +| --- | --- | --- | caf blind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_blind | +| --- | --- | --- | caf unblind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_unblind | +| --- | --- | --- | caf prescaled | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_prescaled | +| --- | --- | --- | flatcaf blind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_blind | +| --- | --- | --- | flatcaf unblind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_unblind | +| --- | --- | --- | flatcaf prescaled | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_larcv | -|Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind, Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_unblind, Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_prescaled | -| --- | --- | --- | flatcaf | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_blind, Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_unblind, Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_prescaled | +| --- | --- | --- | --- | --- | +|Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf blind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind +| --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_unblind| +| --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_prescaled | +| --- | --- | --- | flatcaf blind| Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_blind| +| --- | --- | --- | flatcaf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_unblind| +| --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_prescaled | + + ### Notes on samples ### * Run 1 reprocessing is the reprocessing of selected runs based on the good run list created by Gray and Minerba. Please refer to this docdb for the list of runs: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=25407&filename=ICARUS%20Data%20Re-Processing.pdf&version=1 * Run 1 batch 2 is the processing of run_number > 7621 and run_number < 8460 (before the update to the new DAQ configuration) From 54fad970b06073a18c155ce166ebfb96ecc04afa Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 25 Aug 2025 14:14:45 -0500 Subject: [PATCH 1237/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index e95d25499..2a3678768 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -531,6 +531,13 @@ Data SBN Production Samples | --- | --- | --- | flatcaf blind| Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_blind| | --- | --- | --- | flatcaf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_unblind| | --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_prescaled | +| --- | --- | --- | --- | --- | +| Run2 reprocessed NuMI majority | v09_89_01_02p02 | --- | stage1 | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_stage1 | +| --- | --- | --- | caf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_blind | +| --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_unblind | +| --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_prescaled | + + ### Notes on samples ### From 1ac6e142202272d911ae9f0153d7eb6ad33baff8 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 25 Aug 2025 16:46:21 -0500 Subject: [PATCH 1238/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2a3678768..833db9403 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -536,6 +536,22 @@ Data SBN Production Samples | --- | --- | --- | caf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_unblind | | --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_prescaled | +| --- | --- | --- | flatcaf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_flatcaf_blind | +| --- | --- | --- | flatcaf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_flatcaf_unblind | +| --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_flatcaf_prescaled | +| --- | --- | --- | larcv | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_larcv | +| --- | --- | --- | --- | --- | +| Run2 reprocessed OFFBeam NuMI majority | v09_89_01_02p02 | --- | stage1 | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_stage1 | +| --- | --- | --- | caf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_caf_blind | +| --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_caf_unblind | +| --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_caf_prescaled | +| --- | --- | --- | flatcaf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_flatcaf_blind | +| --- | --- | --- | flatcaf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_flatcaf_unblind | +| --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_flatcaf_prescaled | +| --- | --- | --- | larcv | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_larcv | + + + From 6f6e8a4a91e092cb15df8e43e0d3eeb5f5421d2e Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 25 Aug 2025 23:21:01 -0500 Subject: [PATCH 1239/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 692cdcdc7..c4749e630 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_09_00`. | Major release | [Release Notes](ReleaseNotes100900.html) |`v10_06_00_04`. | Patch release | [Release Notes](ReleaseNotes10060004.html) |`v10_06_03`. | Major release | [Release Notes](ReleaseNotes100603.html) |`v10_06_02`. | Major release | [Release Notes](ReleaseNotes100602.html) From 36232cafb206e048c9c43b3d0b8a30567531e43d Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 25 Aug 2025 23:24:10 -0500 Subject: [PATCH 1240/1437] Create ReleaseNotes100900.md --- sbndcode_wiki/Releases/ReleaseNotes100900.md | 126 +++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes100900.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes100900.md b/sbndcode_wiki/Releases/ReleaseNotes100900.md new file mode 100644 index 000000000..3999cf14a --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes100900.md @@ -0,0 +1,126 @@ +--- +layout: page +title: ReleaseNotes100900 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.09.00 | 25 Aug 2025 | [ReleaseNotes](ReleaseNotes100900.html) | +| --- | --- | --- | + + + +sbndcode v10_09_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_09_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_09_00/sbndcode-v10_09_00.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_06_03 to v10_09_00 +- PR #787: Add detvar fcls to avoid the error for same process being run twice + - **Description**: Adding detvar fcls to avoid the error of "The process name ABC was previously used on these products." when producing detvar samples. In our setup, ABC can be G4 (recombination & SCE), detsim (PDS, etc), reco1. Reco2 is not relevant since we save reco1 files to run detvar samples on. This PR is preventive and meant to merge only into develop (not production). Production has a different separate PR. + - **Labels**: maintenance, simulation, detsim, reco1/reco2 + - **Reviewers**: jzennamo + - **Assignees**: linyan-w +- PR #762: Adding low threshold settings to reco1 + - **Description**: + - **Labels**: + - **Reviewers**: absolution1, wforeman, weihythu, nathanielerowe, wjdanswjddl + - **Assignees**: Jjm321814 +- PR #782: new dead channel -- died August 5, 2025, starting with run 18837 + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: tpc, detsim, data + - **Reviewers**: + - **Assignees**: tomjunk, Li-Jiaoyang97 +- PR #785: CRT File Size Cut + - **Description**: We collect a large chunk of data before and after the event trigger (50ms) most of which we don't need. This PR adds the functionality to the first CRT reconstruction producer to drop data outside of a window. This is turned on only for data where it is necessary. This has a significant impact on the size of our files: - reco1 & reco2 artroot files reduce by 11% and 5.5% respectively - CAF & FlatCAF by about 35% - Calib NTuples (via the CRTAnalysis tree) by about 50% again, this is only for data workflows. ~~This hasn't yet been presented so will convert to full PR when it has. Draft slides can be found here: https://docs.google.com/presentation/d/1E2rItFS-dis8DV_TPqzlXUOAadtHawEky4pevQq8RWg/edit?usp=sharing~~ Presented at CRT meeting now: https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=42993 + - **Labels**: enhancement, crt, reco1/reco2 + - **Reviewers**: jzennamo, absolution1 + - **Assignees**: henrylay97 +- PR #793: Fix CRT T0 Matching for Cathode Crossing Tracks + - **Description**: The check on minimum and maximum timing fails for cathode crossing tracks which have already been T0 tagged. This prevents >99% of possible CRT tags to these tracks. It is important to also tag them with the CRT as a cross check of both systems' performances. The actual fix is the one line change in each of the CRTTPCMatching algs. In the process of making this fix I added more TPC visualisation to the CRT event display that may as well be merged as well. Presenting today at the calibration meeting - will link slides after. Note, the two PRs relating to the calibration ntuples in sbncode and sbnobj come from the same study but are totally independent of this PR from a release management point of view - this PR can be merged before / after / at the same time as them. + - **Labels**: bug, crt, tpc, reco1/reco2 + - **Reviewers**: mrmooney, mstancar + - **Assignees**: henrylay97 + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-08-25 Nathaniel : Merge branch 'release/v10_09_00' +* 2025-08-25 Nathaniel : Update to sbncode v10_09_00 +* 2025-08-25 nathanielerowe : Merge pull request #793 from SBNSoftware/feature/hlay_calib_ntuples_crt_t0 +* 2025-08-25 nathanielerowe : Merge branch 'develop' into feature/hlay_calib_ntuples_crt_t0 +* 2025-08-25 nathanielerowe : Merge pull request #785 from SBNSoftware/feature/hlay_crt_file_size_cut +* 2025-08-25 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_file_size_cut +* 2025-08-25 nathanielerowe : Merge pull request #782 from SBNSoftware/trj_new_dead_channel_aug8_2025 +* 2025-08-25 nathanielerowe : Merge branch 'develop' into trj_new_dead_channel_aug8_2025 +* 2025-08-25 nathanielerowe : Merge pull request #762 from SBNSoftware/feature/JacobLowThresholdTools +* 2025-08-25 nathanielerowe : Merge branch 'develop' into feature/JacobLowThresholdTools +* 2025-08-25 nathanielerowe : Merge pull request #787 from SBNSoftware/feature/linyan-detvar-fcls +* 2025-08-25 nathanielerowe : Merge branch 'develop' into feature/hlay_calib_ntuples_crt_t0 +* 2025-08-22 Linyan Wan : Adding include statement to fix CI error +* 2025-08-21 Henry Lay : Add 10us safety +* 2025-08-15 Linyan Wan : Add detvar fcls to avoid the error for same process being run twice +* 2025-08-14 Henry Lay : Cut away excess CRT data in data workflows +* 2025-08-14 Henry Lay : Add functionality for cutting on Ts0 in the StripHit producer +* 2025-08-12 Henry Lay : Fix matching for cathode crossing tracks +* 2025-08-12 Henry Lay : Develop event display further +* 2025-08-11 linyan-w : Merge branch 'develop' into feature/JacobLowThresholdTools +* 2025-08-08 Thomas Junk : new dead channel -- died August 5, 2025, starting with run 18837 +* 2025-08-07 Nathaniel : Merge tag 'v10_06_03' into develop +* 2025-08-04 Jacob McLaughlin : Putting the cathode plane back +* 2025-08-04 Jacob McLaughlin : removed some comments +* 2025-08-04 Jacob McLaughlin : fixed bug from merge +* 2025-08-04 Jacob McLaughlin : fixing dnn running +* 2025-08-01 Jacob McLaughlin : fixed detsim step +* 2025-08-01 Jacob McLaughlin : Merge branch 'develop' into feature/JacobLowThresholdTools +* 2025-08-01 Jacob McLaughlin : sptpc2d needs to be moved to simtpc2d +* 2025-08-01 Jacob McLaughlin : Trying to fix roi threshold input +* 2025-07-31 Jacob McLaughlin : Adjusting standard detsim files +* 2025-07-29 Jacob McLaughlin : only running dnn roi for low threshold searches +* 2025-07-29 Jacob McLaughlin : Pulling files out of pr +* 2025-07-29 Jacob McLaughlin : resolved conflict +* 2025-07-29 Jacob McLaughlin : Mostly complete fcl cleanup +* 2025-07-29 Jacob McLaughlin : simplifying the jsonnet files +* 2025-07-28 Jacob McLaughlin : simplifying sim fcl +* 2025-07-25 Jacob McLaughlin : Some more fcl simplification +* 2025-07-24 Jacob McLaughlin : Simplifying fcl config +* 2025-07-24 Jacob McLaughlin : Merging in some blipreco stuff +* 2025-07-18 Jacob McLaughlin : Threw away classic processing fcl +* 2025-07-16 Jacob McLaughlin : wrong label in dnn lookup +* 2025-07-15 Jacob McLaughlin : Wire cell is detsim +* 2025-07-14 Jacob McLaughlin : Need detsim to use dnn in mc +* 2025-07-14 Jacob McLaughlin : forgot to add +* 2025-07-14 Jacob McLaughlin : try different fcl name +* 2025-07-14 Jacob McLaughlin : MC path updates +* 2025-07-14 Jacob McLaughlin : adding mc tools +* 2025-07-14 Jacob McLaughlin : Minor clean ups and comment additions: +* 2025-07-14 Jacob McLaughlin : Had a flag set wrong +* 2025-07-14 Jacob McLaughlin : fixing classic mode +* 2025-07-14 Jacob McLaughlin : split up reco1 options by use of DNN +* 2025-07-14 Jacob McLaughlin : removed old directory cludge +* 2025-07-14 Jacob McLaughlin : Made low threshold use DNN ROI +* 2025-07-14 Jacob McLaughlin : Didn't assign things correctly +* 2025-07-14 Jacob McLaughlin : Adjusting fcl to be more minamal +* 2025-07-14 Jacob McLaughlin : I don't believe this updated correctly +* 2025-07-14 Jacob McLaughlin : fcl ordering +* 2025-07-14 Jacob McLaughlin : Squashed commit of the following: +* 2025-07-14 Jacob McLaughlin : Adding low threshold settings fcl and jsonnet files. Does not impact any normal setting files From d25816f915b426755079b3b21cfbf008f4ca0746 Mon Sep 17 00:00:00 2001 From: Marco Del Tutto Date: Thu, 28 Aug 2025 15:47:08 -0500 Subject: [PATCH 1241/1437] update --- sbndcode_wiki/The_SBND_flux_files.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sbndcode_wiki/The_SBND_flux_files.md b/sbndcode_wiki/The_SBND_flux_files.md index 41d15aba0..11c95a56c 100644 --- a/sbndcode_wiki/The_SBND_flux_files.md +++ b/sbndcode_wiki/The_SBND_flux_files.md @@ -239,7 +239,8 @@ BNB simulation in reverse horn current: ```bash /pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/rhc/ ``` -First production (20250707-14:46) is configuration `a`. +First production (20250707-14:46) is configuration `a`. This has a bug, do NOT use. +Second production (20250808-16:47) is configuration `b`. #### Beam-Dump BNB simulation in beam dump mode: @@ -247,5 +248,6 @@ BNB simulation in beam dump mode: /pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/beamdump/ ``` -First production (july 2025) is configuration `a`. +First production (july 2025) is configuration `a`. This has a bug, do NOT use. +Second production (20250808-16:48) is configuration `b`. From b25bdb19c701163b11569007ba0a79dcd8d36fba Mon Sep 17 00:00:00 2001 From: mvicenzi <64699641+mvicenzi@users.noreply.github.com> Date: Tue, 2 Sep 2025 15:10:01 -0400 Subject: [PATCH 1242/1437] Update DAQworkshops.md add entry to list of tutorial --- sbn_online_wiki/DAQworkshops.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/DAQworkshops.md b/sbn_online_wiki/DAQworkshops.md index 9a249a9a5..bde5964fc 100644 --- a/sbn_online_wiki/DAQworkshops.md +++ b/sbn_online_wiki/DAQworkshops.md @@ -2,6 +2,7 @@ List of the past ICARUS DAQ workshop --- (AA: I tried to list here all the DAQ tutorials I could recall. Please expand this list if I omitted something, or if new materials are being added) +* 2025, Sep 17, [DAQ Expert Tutorial and Workshop](https://sbn-docdb.fnal.gov/cgi-bin/sso/DisplayMeeting?conferenceid=20091) - overview and hands-on practice * 2022, Nov 9–10, [ICARUS DAQ workshop](https://indico.fnal.gov/event/56801/) – an overview of all subsystems * 2022, Aug 15, [SBN DAQ Feature Branches, Pull Requests, and the CRT## Setup](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=27504) by E.Yandel * 2021, Nov 12, [ICARUS DAQ Introduction](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=23979) by J.Zettlemoyer on ICARUS Collaboration Meeting From 57897ddec95b9e4be055475bddabda41ce8442f3 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 5 Sep 2025 00:11:47 -0500 Subject: [PATCH 1243/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index c4749e630..78b42835c 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_06_00_05`. | Patch release | [Release Notes](ReleaseNotes10060005.html) |`v10_09_00`. | Major release | [Release Notes](ReleaseNotes100900.html) |`v10_06_00_04`. | Patch release | [Release Notes](ReleaseNotes10060004.html) |`v10_06_03`. | Major release | [Release Notes](ReleaseNotes100603.html) From 9c5ead994f937619e9f718387d87e9bcd0cc10b5 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 5 Sep 2025 00:14:05 -0500 Subject: [PATCH 1244/1437] Create ReleaseNotes10060005.md --- .../Releases/ReleaseNotes10060005.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10060005.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10060005.md b/sbndcode_wiki/Releases/ReleaseNotes10060005.md new file mode 100644 index 000000000..a5eea3b31 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10060005.md @@ -0,0 +1,111 @@ +--- +layout: page +title: ReleaseNotes10060005 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.06.00.05 | 05 Sep 2025 | [ReleaseNotes](ReleaseNotes10060005.html) | +| --- | --- | --- | + + + +sbndcode v10_06_00_05 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_06_00_05](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_06_00_05/sbndcode-v10_06_00_05.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_06_00_04 to v10_06_00_05 +- PR #790: Geant4Reweight SBN/SBND implementation + - **Description**: + - **Labels**: + - **Reviewers**: afropapp13 + - **Assignees**: +- PR #794: Change RockBox Min Energy Deposited + - **Description**: See 792. + - **Labels**: simulation + - **Reviewers**: sungbinoh, jzennamo + - **Assignees**: marcodeltutto +- PR #797: Prepare SCE maps and relevant FHiCLs for detector variation samples for Spring Production + - **Description**: Three new space charge effect (SCE) maps are created with this PR: 1. SCEoffsets_SBND_E500_dualmap_CV_voxelTH3.root (1.1x nominal in East TPC, 1.4x nominal in West TPC) 2. SCEoffsets_SBND_E500_dualmap_0x_voxelTH3.root (bin contents in CV histogram are multiplied by zero) 3. SCEoffsets_SBND_E500_dualmap_2x_voxelTH3.root (bin contents in CV histogram are multiplied by two) Scaling of histograms is achieved with the following function: ``` TH3F* scale_TH3F(TH3F* source_hist, string out_name, double scaling) { TH3F* out_hist = (TH3F*) source_hist->Clone(); for(int i=1; i<=source_hist->GetNbinsX(); ++i){ for(int j=1; j<=source_hist->GetNbinsY(); ++j){ for(int k=1; k<=source_hist->GetNbinsZ(); ++k){ Float_t orig = source_hist->GetBinContent(i, j, k); out_hist->SetBinContent(i,j,k, scaling*orig); } } } out_hist->SetName(out_name.c_str()); return out_hist; } ``` As usual, these maps are to be stored in the latest version of **sbnd_data/SCEoffsets**. For now, I have copied the latest version of sbnd_data to my working directory: **/exp/sbnd/app/users/lkashur/sce_detvar/sbnd_data/**. Motivation for the scalings used for 1 (1.1x and 1.4x offsets) comes from differences seen in spatial offsets between TPCs using Spring 2025 crossing muon data: sbnd_sce_dx_vs_x_nominal_sim New FHiCL files for g4 simulation point to these maps and are located in **JobConfigurations/standard/g4/sce_variations/**: - g4_enable_nominalspacecharge_sbnd.fcl - g4_enable_zerospacecharge_sbnd.fcl - g4_enable_doublespacecharge_sbnd.fcl For validation, a small sample of anode-cathode crossing muons was created at the gen stage, and processed with each of the SCE variation maps at the g4 stage. Resultant simulated spatial offsets in the drift coordinate are shown here. CV sim_edeps_sce_detvar_cv 0x sim_edeps_sce_detvar_0x 2x sim_edeps_sce_detvar_2x + - **Labels**: simulation + - **Reviewers**: mrmooney + - **Assignees**: lkashur +- PR #803: Frame Shift Module to Correct Timing in Data - PR For Spring Production + - **Description**: New module for timing reconstruction. Module make data products for downstream reconstruction. Add to reco2 workflow + - **Labels**: breaking change, reco1/reco2 + - **Reviewers**: JosiePaton + - **Assignees**: VCLanNguyen + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-09-04 nathanielerowe : Update CMakeLists.txt +* 2025-09-04 nathanielerowe : Merge pull request #803 from SBNSoftware/lnguyen/frame_shift_pr_spring +* 2025-09-04 nathanielerowe : Merge branch 'production/v10_06_00' into lnguyen/frame_shift_pr_spring +* 2025-09-04 nathanielerowe : Merge pull request #797 from SBNSoftware/feature/lkashur_sce_detvar_prod + +* 2025-09-04 nathanielerowe : Merge branch 'production/v10_06_00' into feature/lkashur_sce_detvar_prod +* 2025-09-04 nathanielerowe : Merge pull request #794 from SBNSoftware/feature/mdeltutt_v10_06_00_rockbox +* 2025-09-04 nathanielerowe : Merge branch 'production/v10_06_00' into feature/mdeltutt_v10_06_00_rockbox +* 2025-09-04 nathanielerowe : Merge pull request #790 from pgreen135/feature/pgreen_g4rw_for_production +* 2025-09-04 nathanielerowe : Merge branch 'production/v10_06_00' into lnguyen/frame_shift_pr_spring +* 2025-09-04 nathanielerowe : Merge branch 'production/v10_06_00' into feature/mdeltutt_v10_06_00_rockbox +* 2025-09-04 nathanielerowe : Merge branch 'production/v10_06_00' into feature/pgreen_g4rw_for_production +* 2025-09-04 nathanielerowe : Merge branch 'production/v10_06_00' into feature/lkashur_sce_detvar_prod +* 2025-09-04 nathanielerowe : Update product_deps +* 2025-09-04 VCLanNguyen : set default debug as false +* 2025-09-03 Marco Del Tutto : Ensure that the only dirt events pass with the low energy filter rockbox +* 2025-09-03 VCLanNguyen : move parameters to fcl +* 2025-09-02 VCLanNguyen : add labels to fcl +* 2025-09-02 VCLanNguyen : add caf maker fcl parameter +* 2025-09-02 VCLanNguyen : Merge branch 'lnguyen/frame_shift_pr_spring' of https://github.com/SBNSoftware/sbndcode into lnguyen/frame_shift_pr_spring +* 2025-09-02 VCLanNguyen : add new flag to enable/disable timing correction in caf +* 2025-08-29 VCLanNguyen : Merge branch 'production/v10_06_00' into lnguyen/frame_shift_pr_spring +* 2025-08-29 VCLanNguyen : remove comments +* 2025-08-29 VCLanNguyen : move products from sbndcode to sbnobj +* 2025-08-28 VCLanNguyen : Turn missing TDC products exception to a log +* 2025-08-27 Linyan Wan : Adding printout of the SCE map file name to keep record +* 2025-08-27 Linyan Wan : Recover +* 2025-08-27 Linyan Wan : Recover the accidental removed line +* 2025-08-27 Linyan Wan : Add SCE detvar fcls to detvar +* 2025-08-27 Linyan Wan : Move SCE detvars from g4 to detsim +* 2025-08-27 Linyan Wan : Add include into CMake +* 2025-08-27 Linyan Wan : Remove old files +* 2025-08-26 VCLanNguyen : add reco2 fcl + some fixes +* 2025-08-25 lkashur : Add "rockbox" to g4_enable_zerospacecharge_sbnd.fcl +* 2025-08-25 lkashur : Add "rockbox" to g4_enable_nominalspacecharge_sbnd.fcl +* 2025-08-25 lkashur : Add "rockbox" to g4_enable_doublespacecharge_sbnd.fcl +* 2025-08-25 VCLanNguyen : add a new variable to correct at CAF +* 2025-08-25 lkashur : Create g4_enable_nominalspacecharge_sbnd.fcl +* 2025-08-25 lkashur : Create g4_enable_zerospacecharge_sbnd.fcl +* 2025-08-25 lkashur : Create g4_enable_doublespacecharge_sbnd.fcl +* 2025-08-20 Marco Del Tutto : Add fcls for rockbox with min dep energy of 100, and with dep energy btw 1 and 100 +* 2025-08-20 Marco Del Tutto : Set min energy for rockbox to 10 MeV instead of 100 MeV +* 2025-08-20 Marco Del Tutto : Add option to set max dep energy +* 2025-08-19 VCLanNguyen : add frame shift to reco2 fcl +* 2025-08-18 nathanielerowe : Merge branch 'production/v10_06_00' into feature/pgreen_g4rw_for_production +* 2025-08-15 VCLanNguyen : add saving additional info +* 2025-08-12 VCLanNguyen : Add a new object TimingInfo to store timestamp in unix format +* 2025-08-06 VCLanNguyen : first commit +* 2025-08-04 Patrick Green : add set of cafmaker fhicls for g4rw +* 2025-07-24 Patrick Green : adding cafmaker fhicl for g4rw From 06d4cac33954d80bbb5c3312d2d4da1e3b28eb23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20S=C3=A1nchez=20Castillo?= <121103809+asanchezcastillo@users.noreply.github.com> Date: Tue, 9 Sep 2025 16:17:20 +0200 Subject: [PATCH 1245/1437] Fix typo in reconstruct_channel and update SER vector range --- sbnd_calibration_database.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index d383eedb5..f5eb388ed 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -126,14 +126,13 @@ This section displays a list of the variables in the database, as well as their | caen_digitizer | integer | CAEN digitizer to which the PMT is connected | N/A | | caen_digitizer_channel | integer | CAEN digitizer channel to which the PMT is connected | N/A | | total_transit_time | real | Total transit time | ns | -| reconstruc_channel | bool | Whether the channel is used for reconstruction | N/A | +| reconstruct_channel | bool | Whether the channel is used for reconstruction | N/A | | cosmic_timing_correction | real | Timing correction derived from cosmic muon calibration | ns | | spe_amp | real | Mean amplitude of SPE | ADC | | spe_amp_std | real | Std of the SPE amplitude | ADC | -| gauss_wc | real | WC parameter for Gauss noise filter | GHz | | gauss_w_wc_power | real | Power parameter for Gauss noise filter | N/A | -| ophit_adc_deco_threshold | int | ADC threshold for selecting ophits on deconvolved signal | N/A | -| ser_vec_0 → ser_vec_499 | real | ADC count per bin (550 in total) for the Single Electron Response (SER) pulse (More info: [DocDB 38059](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38059)) | ADC | +| gauss_wc | real | WC parameter for Gauss noise filter | GHz | +| ser_vec_0 → ser_vec_550 | real | ADC count per bin (550 in total) for the Single Electron Response (SER) pulse (More info: [DocDB 38059](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38059)) | ADC | ### What happens when a variable does not exist in an older version of the database? From 98ff7a12f5e51e4179ff269e753a208466350524 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 9 Sep 2025 13:41:55 -0400 Subject: [PATCH 1246/1437] Update sample.md adding new samples --- sbn/sbnprod_wiki/sample.md | 43 +++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 833db9403..7e4e35748 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -67,6 +67,10 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| DNN ROI + low-trad threshold (100 events p/ file pre-filter) | MC2025B | v10_09_00 | 30k | reco1 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | larcv | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | reco2 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | Spring25 - BNB + Cosmics 1e20 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~6.8M | reco1 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | @@ -85,6 +89,10 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_04 | --- | reco2 | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics 5e18 POT (500 events p/ file pre-filter) | MC2025B | v10_06_00 | ~290k | reco1 | mc_MCP2025B_5e18_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_5e18_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | v10_06_00_02 | --- | reco2 | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | @@ -446,14 +454,33 @@ Data SBN Production Samples | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | +| DNN ROI + low-trad threshold | v10_06_00 | ~30k | decode | data_MCP2025B_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_decode_sbnd | +| --- | v10_09_00 | --- | reco1 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025B_DNNROI_bnblight_v10_09_00_larcvreco1_sbnd | +| --- | --- | --- | reco2 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_DNNROI_bnblight_v10_09_00_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_DNNROI_bnblight_v10_09_00_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_DNNROI_bnblight_v10_09_00_flatcaf_sbnd | +| Spring25 - Crossing Muon afterlight trigger | v10_06_03 | ~30k | raw | sbnd_CrossingMuon_FullRun1_AfterLight_raw | +| --- | --- | --- | decode | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_decode_sbnd | +| --- | --- | --- | reco1 | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_larcvreco1_sbnd | +| --- | --- | --- | reco2 | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_flatcaf_sbnd | | Spring25 - BNB 1e20 POT | v10_06_00_02 | ~1.7M | raw | SBND_DATA_1e20_Raw_May2025 | | --- | --- | --- | decode | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_larcvreco1_sbnd | | --- | --- | --- | reco2 | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_reco2_sbnd | | --- | --- | --- | calib tuple | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_histreco2_sbnd | -| --- | --- | --- | caf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_caf_sbnd| +| --- | --- | --- | caf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_flatcaf_sbnd | +| --- | v10_06_00_05 | --- | reco2 | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_flatcaf_sbnd | | Spring25 - Intime Cosmics | v10_06_00 | ~k | raw | SBND_DATA_InTime-Cosmic_Raw_Snapshot-20250527 | | --- | --- | --- | decode | data_MCP2025B_InTimeCosmics_offbeamlight_v10_06_00_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_InTimeCosmics_offbeamlight_v10_06_00_reco1_sbnd | @@ -462,6 +489,10 @@ Data SBN Production Samples | --- | --- | --- | calib tuple | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_02_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_02_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_02_flatcaf_sbnd | +| --- | v10_06_00_05 | --- | reco2 | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_05_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_05_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_05_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_05_flatcaf_sbnd | | Spring25 - fixed DevSample (5e18 POT)| v10_06_00 | ~90k | raw | SBND_DATA_DevSample_Raw_Mar2025 | | --- | --- | --- | decode | data_MCP2025B_DevSample_bnblight_v10_06_00_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_DevSample_bnblight_v10_06_00_reco1_sbnd | @@ -478,6 +509,10 @@ Data SBN Production Samples | --- | --- | --- | calib tuple | data_MCP2025B_02_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_02_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_02_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_02_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_02_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_02_flatcaf_sbnd | +| --- | v10_06_00_04 | --- | reco2 | data_MCP2025B_04_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_04_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_04_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_04_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_04_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_04_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_04_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_04_flatcaf_sbnd | | Spring25 validation - DevSample | v10_04_06_01 | 90k | raw | SBND_DATA_DevSample_Raw_Mar2025 | | --- | --- | --- | decode | MCP2025Av3_DevSample_bnblight_v10_04_06_01_decode | | --- | --- | --- | reco1 | MCP2025Av3_DevSample_bnblight_v10_04_06_01_reco1 | @@ -550,12 +585,6 @@ Data SBN Production Samples | --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_larcv | - - - - - - ### Notes on samples ### * Run 1 reprocessing is the reprocessing of selected runs based on the good run list created by Gray and Minerba. Please refer to this docdb for the list of runs: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=25407&filename=ICARUS%20Data%20Re-Processing.pdf&version=1 * Run 1 batch 2 is the processing of run_number > 7621 and run_number < 8460 (before the update to the new DAQ configuration) From 1f70a70babd8ea1172b00b1261313f07b7e6121b Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 9 Sep 2025 15:03:14 -0400 Subject: [PATCH 1247/1437] Update sample.md adding new version of the progress report spreadsheet --- sbn/sbnprod_wiki/sample.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 7e4e35748..8a7b53083 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -674,8 +674,8 @@ SBND Production Progress Report --------------------------
+ src="https://docs.google.com/spreadsheets/d/e/2PACX-1vTf2_LhvACU-MiRJ4Jv0c02PH7pLmjVwo8wzzEeVq7JTxgRFU4jQfcBD25MA7tz9yoYnQ6iRFL_P5qI/pubhtml?gid=615578792&single=true&widget=true&headers=false" + style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" + loading="lazy"> +
From f4d7b4527a39fbfa432793f38da488780ded33e1 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 9 Sep 2025 15:52:17 -0400 Subject: [PATCH 1248/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 8a7b53083..57a4e6691 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -461,7 +461,7 @@ Data SBN Production Samples | --- | --- | --- | calib tuple | data_MCP2025B_DNNROI_bnblight_v10_09_00_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_DNNROI_bnblight_v10_09_00_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_DNNROI_bnblight_v10_09_00_flatcaf_sbnd | -| Spring25 - Crossing Muon afterlight trigger | v10_06_03 | ~30k | raw | sbnd_CrossingMuon_FullRun1_AfterLight_raw | +| Crossing Muon afterlight trigger | v10_06_03 | ~30k | raw | sbnd_CrossingMuon_FullRun1_AfterLight_raw | | --- | --- | --- | decode | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_larcvreco1_sbnd | From 8d72f8b46bb21c0b669d1fb46dbfb2686325aaf2 Mon Sep 17 00:00:00 2001 From: eyandel Date: Thu, 11 Sep 2025 13:16:13 -0600 Subject: [PATCH 1249/1437] Update Basic_Computing.md computing best practices diagram --- SBNYoung/Basic_Computing.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SBNYoung/Basic_Computing.md b/SBNYoung/Basic_Computing.md index 6ec69e818..15cb9eeb1 100644 --- a/SBNYoung/Basic_Computing.md +++ b/SBNYoung/Basic_Computing.md @@ -63,6 +63,10 @@ See: [https://explainshell.com/explain?cmd=ssh+-X](https://explainshell.com/expl ##### Local Forwarding +#### Storage/Working Areas and Best Practices + +image + #### VNC From ebee5c046d92c9b289d2255da54afe52f017368c Mon Sep 17 00:00:00 2001 From: mattfcs Date: Fri, 12 Sep 2025 18:03:29 -0400 Subject: [PATCH 1250/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 57a4e6691..c5c0f6890 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -77,12 +77,20 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_05 | --- | reco2 | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics 1e20 POT (500 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~2.2M | reco1 | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_05 | --- | reco2 | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics 5e18 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00 | ~170k | reco1 | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | v10_06_00_02 | --- | reco2 | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | @@ -459,8 +467,6 @@ Data SBN Production Samples | --- | --- | --- | larcv | data_MCP2025B_DNNROI_bnblight_v10_09_00_larcvreco1_sbnd | | --- | --- | --- | reco2 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco2_sbnd | | --- | --- | --- | calib tuple | data_MCP2025B_DNNROI_bnblight_v10_09_00_histreco2_sbnd | -| --- | --- | --- | caf | data_MCP2025B_DNNROI_bnblight_v10_09_00_caf_sbnd | -| --- | --- | --- | flatcaf | data_MCP2025B_DNNROI_bnblight_v10_09_00_flatcaf_sbnd | | Crossing Muon afterlight trigger | v10_06_03 | ~30k | raw | sbnd_CrossingMuon_FullRun1_AfterLight_raw | | --- | --- | --- | decode | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_reco1_sbnd | @@ -501,6 +507,10 @@ Data SBN Production Samples | --- | --- | --- | calib tuple | data_MCP2025B_02_DevSample_bnblight_v10_06_00_02_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_02_DevSample_bnblight_v10_06_00_02_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_02_DevSample_bnblight_v10_06_00_02_flatcaf_sbnd | +| --- | v10_06_00_05 | --- | reco2 | data_MCP2025B_05_DevSample_bnblight_v10_06_00_05_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_05_DevSample_bnblight_v10_06_00_05_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_05_DevSample_bnblight_v10_06_00_05_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_05_DevSample_bnblight_v10_06_00_05_flatcaf_sbnd | | Spring25 - rolling DevSample | v10_06_00 | ~30k | raw | SBND_DATA_DevSample_Run1Rolling_5e18_Raw_May2025 | | --- | --- | --- | decode | data_MCP2025B_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_reco1_sbnd | @@ -513,6 +523,10 @@ Data SBN Production Samples | --- | --- | --- | calib tuple | data_MCP2025B_04_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_04_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_04_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_04_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_04_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_04_flatcaf_sbnd | +| --- | v10_06_00_05 | --- | reco2 | data_MCP2025B_05_DevSample_Run1Rolling_bnblight_v10_06_00_05_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_05_DevSample_Run1Rolling_bnblight_v10_06_00_05_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_05_DevSample_Run1Rolling_bnblight_v10_06_00_05_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_05_DevSample_Run1Rolling_bnblight_v10_06_00_05_flatcaf_sbnd | | Spring25 validation - DevSample | v10_04_06_01 | 90k | raw | SBND_DATA_DevSample_Raw_Mar2025 | | --- | --- | --- | decode | MCP2025Av3_DevSample_bnblight_v10_04_06_01_decode | | --- | --- | --- | reco1 | MCP2025Av3_DevSample_bnblight_v10_04_06_01_reco1 | From e56cbdfdfa2fd3252c71162002c8a74801c6aa41 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 12 Sep 2025 18:28:11 -0500 Subject: [PATCH 1251/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index f4c787193..060f5ec7f 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,9 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +'sbnana' `v10_01_02` | 'sbnana' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02) +`v10_10_02` | 'sbncode' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_02) +`v10_06_00_05` | 'sbncode' production patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_05) `v10_09_00` | 'sbncode' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_09_00) `v10_06_00_04` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_04) 'sbnana' `v10_01_01` | 'sbnana' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_01) From a2f2989345a29fa1b72936b8a7de2788fefb0046 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 12 Sep 2025 18:52:18 -0500 Subject: [PATCH 1252/1437] Create sbncode_v10_06_00_05.md --- .../Releases/sbncode_v10_06_00_05.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_05.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_05.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_05.md new file mode 100644 index 000000000..95200fc64 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_05.md @@ -0,0 +1,71 @@ +--- +layout: page +title: sbncode_v10_06_00_05 +toc: true +--- + +sbncode_v10_06_00_05 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v10_06_00_05 and v10_06_00_04](https://github.com/SBNSoftware/sbncode/compare/v10_06_00_04...v10_06_00_05) + +Date +--------------------------------------------------- +4 September 2025 + +Purpose +--------------------------------------------------- +* Merged production-ready PRs + +New features +--------------------------------------------------- +A patch release of sbncode (v10_06_00_05) has been cut and distributed + +* sbndata (v01_08): + + Includes: + + * Geant4Reweight SBN/SBND implementation [#9](https://github.com/SBNSoftware/sbndata/pull/9): Adds input files required for Geant4Reweight SBN implementation. + +* sbnobj (v10_01_01_01): + + Includes: + + * Feature/maxd bnb qual cut v10 06 00 [#138](https://github.com/SBNSoftware/sbnobj/pull/138): Adds BNB Figure-of-Merit quality cut metrics for production. + * Frame Shift Module to Correct Timing in Data - PR for Spring Production [#141](https://github.com/SBNSoftware/sbnobj/pull/141): Adds data products for new module that saves new products for time shifting. + * Calib NTuple CRT Timing Additions - Production 2025A Version [#143](https://github.com/SBNSoftware/sbnobj/pull/143): Objects for CRT calibration ntuple additions: CRTSpacePoint matching T0 value, matching score quality, and xshift applied. + +* sbnanaobj (v10_00_05_01): + + Includes: + + * Feature/maxd bnb qual cut v10 06 00 [#148](https://github.com/SBNSoftware/sbnanaobj/pull/148): Additions to SRBNBInfo for BNB FoM. + * adding efield and phi to SRCaloPoint for 2025A [#151](https://github.com/SBNSoftware/sbnanaobj/pull/151): Additions to SRCaloPoint. + * Frame Shift Module to Correct Timing in Data - PR for Spring Production [#155](https://github.com/SBNSoftware/sbnanaobj/pull/155)L New StandardRecord classes to store timing correction in SBND data. + +* sbnalg (v10_06_00_04): + + Using (updated dependencies): + + * sbnobj v10_01_01_01 + * sbnanaobj v10_00_05_01 + +* sbncode (v10_06_00_05): + + Using (updated dependencies): + + * sbnalg v10_06_00_04 + + Includes: + + * Feature/maxd bnb qual cut v10 06 00 [#553](https://github.com/SBNSoftware/sbncode/pull/553): Adding BNB FoM quality cut for production. + * Geant4Reweight SBN/SBND implementation [#554](https://github.com/SBNSoftware/sbncode/pull/554): Adds in Geant4Reweight SBN implementation for use in SBND. + * Feature/sungbino caf calo updates 2025 a [#559](https://github.com/SBNSoftware/sbncode/pull/559): Adding phi and |E| for each hit for CAF-level calorimetry. + * Frame Shift Module to Correct Timing in Data - PR for Spring Production [#563](https://github.com/SBNSoftware/sbncode/pull/563): New module for timing reconstruction introduced in reco2 in sbndcode; data products are saved in CAF as new StandardRecord products. + Data timing variables are shifted for beam spill reconstruction. + * Calib NTuple CRT Timing Additions - Production 2025A Version [#564](https://github.com/SBNSoftware/sbncode/pull/564): Adds new (SBND-only) T0 source from CRTSpacePoint matching, applies appropriate x shifts to TPC track end points, adds in x shifting of hit/spacepoint, removes a sea of deltas and michels from calib ntuples, skips shower-like PFPs. + +Extra info +--------------------------------------------------- From 1271f33b5b1c994582abc6f7f2605dcbdf2c1f84 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 12 Sep 2025 19:20:02 -0500 Subject: [PATCH 1253/1437] Create sbncode_v10_10_02.md --- .../Releases/sbncode_v10_10_02.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_02.md new file mode 100644 index 000000000..df5593a56 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_02.md @@ -0,0 +1,84 @@ +--- +layout: page +title: sbncode_v10_10_02 +toc: true +--- + +sbncode_v10_10_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v10_09_00 and v10_10_02](https://github.com/SBNSoftware/sbncode/compare/v10_06_00_04...v10_09_00) + +Date +--------------------------------------------------- +12 September 2025 + +Purpose +--------------------------------------------------- +* Feature release + +New features +--------------------------------------------------- +A new release of sbncode (v10_10_02) has been cut and distributed + +* sbndata (v01_08): + + Includes: + + * Geant4Reweight SBN/SBND implementation [#9](https://github.com/SBNSoftware/sbndata/pull/9): Adds input files required for Geant4Reweight SBN implementation. + +* sbnobj (v10_02_00): + + Using(updated dependencies): + + * lardataobj v10_02_01 + + Includes: + + * Feature/maxd bnb qual cut [#135](https://github.com/SBNSoftware/sbnobj/pull/135): Adds additional information to BNBSpillInfo in order to create SBND Figure of Merit for BNB. + * Frame Shift Module to Correct Timing in Data - PR for Develop [#142](https://github.com/SBNSoftware/sbnobj/pull/142): Two new data products: `sbnd::timing::TimingInfo` and `sbnd::timing::FrameShiftInfo`. + +* sbnanaobj (v10_00_07): + + Includes: + + * BNB FOM updates for CAFs [#146](https://github.com/SBNSoftware/sbnanaobj/pull/146): Added information to CAFs from BNBInfo to capture new variables for beam quality metrics including Figure of Merit and monitor offsets. + * adding efield and phi to SRCaloPoint [#149](https://github.com/SBNSoftware/sbnanaobj/pull/149): Adding efield and phi to sbnanaobj/StandardRecord/SRCaloPoint.cxx. + This is a follow up for recent updates from LArSoft's side in larreco and lardataobj which are tagged from v10_02_00 of them. + * Frame Shift Module to Correct Timing in Data - PR For Develop [#154](https://github.com/SBNSoftware/sbnanaobj/pull/154): New Standard Record Classes to Store Timing Correction in SBND Data. + +* sbnalg (v10_10_02): + + Using(updated dependencies): + + * lardataalg v10_01_02 + * sbnobj v10_02_00 + * sbnanaobj v10_00_07 + +* sbncode (v10_10_02): + + Using (updated dependencies): + + * genie_xsec v3_04_00 -- Reverted back to genie_xsec v3_04_00 until we switch to GENIE v3_06 + * larsoft v10_10_02 + * sbnalg v10_10_02 + + Includes: + + * Feature/icarus bnb only [#523](https://github.com/SBNSoftware/sbncode/pull/523): Fixes issue [#479](https://github.com/SBNSoftware/sbncode/issues/479), restructures code so SBND BNB modules and ICARUS BNB modules can share some code. + * Feature/maxd bnb qual cut [#551](https://github.com/SBNSoftware/sbncode/pull/551): Added additional information to the BNBSpillInfo module including additional monitors and monitor offsets from IFBeam that allow for the creation of the BNB FOM adapted from MicroBooNE using sbnd information. + * Geant4Reweight SBN/SBND implementation [#555](https://github.com/SBNSoftware/sbncode/pull/555): Adds in Geant4Reweight SBN implementation for use in SBND. + * Frame Shift Module to Correct Timing in Data - PR For Develop [#562](https://github.com/SBNSoftware/sbncode/pull/562): New module for timing reconstruction in introduced at reco2 in sbndcode. + Module makes data products that are saved in CAF as new Standard Record products. + * Add `find_package` for eigen [#569](https://github.com/SBNSoftware/sbncode/pull/569): A fix for building with spack - adds direct dependency which Spack is more strict about than UPS. + * + +Extra info +--------------------------------------------------- +Note that `genie_xsec` has been downgraded to 3_04_00 to ensure same version as `genie`. +Uses LArSoft v10_10_02. Release notes for the last few LArSoft suites here: +* [LArSoft v10_10_00 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_10_00) +* [LArSoft v10_10_01 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_10_01) +* [LArSoft v10_10_02 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_10_02) From 13ef8d6312f08e488edce983139ca11789398876 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 12 Sep 2025 19:30:21 -0500 Subject: [PATCH 1254/1437] Create sbnana_v10_01_02.md --- .../Releases/sbnana_v10_01_02.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02.md new file mode 100644 index 000000000..0abef7409 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02.md @@ -0,0 +1,34 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbnana v10_01_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) + +Date +--------------------------------------------------- +12 September 2025 + +Purpose +--------------------------------------------------- +* sbnana patch release + +New features +--------------------------------------------------- + +A patch release of sbnana v10_01_02 has been cut and distributed. + +Updated dependencies: +sbnanaobj v10_00_07 + +PRs Included: +- Adding TruthVar [#113](https://github.com/SBNSoftware/sbnana/pull/113): Adding TruthVar which corresponds to `Var` but per `SRTrueInteratcion` not `SRSlice`. +- Update ICARUS containment [#121](https://github.com/SBNSoftware/sbnana/pull/121): Update ICARUS containment requirement to exclude detector corners. +- Updade `ICARUSDataQualityCuts.h` [#125](https://github.com/SBNSoftware/sbnana/pull/125): Make it so run 9435 is actually excluded from the Good Runs list as the comment says it should be. + +Extra info +--------------------------------------------------- From a18ce98b839434355797fe42af9aef008e3792d1 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 12 Sep 2025 19:36:18 -0500 Subject: [PATCH 1255/1437] Update sbnana_v10_01_02.md --- .../ReleaseManagement/Releases/sbnana_v10_01_02.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02.md index 0abef7409..94c266633 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02.md @@ -7,7 +7,7 @@ toc: true sbnana v10_01_02 Release Notes ======================================================================================= -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/ReleaseManagement/Releases) Date --------------------------------------------------- From 4d6ea6506ac41062206ffd366421075f05721091 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 12 Sep 2025 19:36:35 -0500 Subject: [PATCH 1256/1437] Update sbnana_v10_01_01.md --- .../ReleaseManagement/Releases/sbnana_v10_01_01.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_01.md index c4f05e5da..ea70015dc 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_01.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_01.md @@ -7,7 +7,7 @@ toc: true sbnana v10_01_01 Release Notes ======================================================================================= -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/ReleaseManagement/Releases) Date --------------------------------------------------- From 3553f6a033a4ca7ff0de3258e924e6a92148595e Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 12 Sep 2025 19:36:52 -0500 Subject: [PATCH 1257/1437] Update sbnana_v10_01_00.md --- .../ReleaseManagement/Releases/sbnana_v10_01_00.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_00.md index 3647b31ac..6fff4e786 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_00.md @@ -7,7 +7,7 @@ toc: true sbnana v10_01_00 Release Notes ======================================================================================= -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/ReleaseManagement/Releases) Date --------------------------------------------------- From c4480eef9d603935543ba9ff94af45cc2666b93f Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 12 Sep 2025 19:37:23 -0500 Subject: [PATCH 1258/1437] Update sbnana_v10_00_00.md --- .../ReleaseManagement/Releases/sbnana_v10_00_00.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md index d759f1668..016a747dc 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_00_00.md @@ -7,7 +7,7 @@ toc: true sbnana v10_00_00 Release Notes ======================================================================================= -[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/Releases) +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/ReleaseManagement/Releases) Date --------------------------------------------------- From 5198fa136cdc00ba8dc7c03da094e1b2bbdc702a Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 15 Sep 2025 11:39:30 -0400 Subject: [PATCH 1259/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index c5c0f6890..7c4183fd4 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -42,10 +42,6 @@ MC sample datasets are declared to the SBN SAM instance which is acessible to bo Each SBND MC file has a unique subrun, so one just nedd the run/subrun to identify the file: - search: `samweb -e sbnd list-files "defname: {dataset name} and run_number run#.subrun#"` -#### **DATA samples** -starting at MCP2025B all DATA samples contain event #'s in metadata: -- search `samweb -e sbnd list-files "defname: {dataset name} and run_number run#.subrun# and sbnd.event_number_list like %_{event#}_%"` - ### Accessing files at CNAF some of ICARUS samples are available at CNAF, those files are declared to samweb and can be accessed from grid jobs from FNAL. From 863acc2ee831c9a6ec0fd020a6a3ab6046a2428f Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Tue, 16 Sep 2025 11:11:11 -0500 Subject: [PATCH 1260/1437] Create ReleaseNotes101002.md --- sbndcode_wiki/Releases/ReleaseNotes101002.md | 268 +++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes101002.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes101002.md b/sbndcode_wiki/Releases/ReleaseNotes101002.md new file mode 100644 index 000000000..379c0be2a --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes101002.md @@ -0,0 +1,268 @@ +--- +layout: page +title: ReleaseNotes101002 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.10.02 | 16 Sep 2025 | [ReleaseNotes](ReleaseNotes101002.html) | +| --- | --- | --- | + + + +sbndcode v10_10_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_10_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_10_02/sbndcode-v10_10_02.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_09_00 to v10_10_02 +- PR #750: CCNueFilter (v10_06_00 production PR) + - **Description**: - Adds a new fcl block inside `Filters/filters.fcl` for a charged-current electron-neutrino interaction inside the TPC active volume. - Adds a new gen fcl that runs rockbox + the ccnue filter. Events with an AV CC nue interaction will be passed, as well dirt activity in the same event. Partially resolves issue 655. Some validation and discussion in the develop PR 748. + - **Labels**: enhancement, simulation + - **Reviewers**: jzennamo, lyates17 + - **Assignees**: lynnt20 +- PR #758: Bump versioning for production patch release + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #756: Updates to semi-analytical light simulation: optical path tool + - **Description**: + - **Labels**: + - **Reviewers**: miquelnebot + - **Assignees**: +- PR #809: Update calibration database to provide new attributes + - **Description**: Update calibration database to provide new pds-related attributes. This PR requires merging a new version of sbnd_data which is currently located at `/exp/sbnd/app/users/acastill/FallProductionPR/v10_09_00/sbnd_data` + - **Labels**: enhancement + - **Reviewers**: VCLanNguyen + - **Assignees**: asanchezcastillo +- PR #807: Feature/acastill tpcpmt bfm upgrade + - **Description**: This PR introduces changes to the TPCPMTBarycenter flash matching algorithm to improve its performance. In particular, it makes use of the directionality of the charge/light footprints and a very naive light-calorimetry that is used along with the separation between the charge/light barycenter to build a chi2 that is used to perform charge/light matching. + - **Labels**: reco1/reco2 + - **Reviewers**: linyan-w, lynnt20 + - **Assignees**: asanchezcastillo +- PR #818: Revert "Feature/acastill tpcpmt bfm upgrade" + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #791: Geant4Reweight SBN/SBND implementation + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #795: Prepare SCE maps and relevant FHiCLs for detector variation samples + - **Description**: Three new space charge effect (SCE) maps are created with this PR: +1. SCEoffsets_SBND_E500_dualmap_CV_voxelTH3.root (1.1x nominal in East TPC, 1.4x nominal in West TPC) +2. SCEoffsets_SBND_E500_dualmap_0x_voxelTH3.root (bin contents in CV histogram are multiplied by zero) +3. SCEoffsets_SBND_E500_dualmap_2x_voxelTH3.root (bin contents in CV histogram are multiplied by two) +As usual, these maps are to be stored in the latest version of **sbnd_data/SCEoffsets**. Motivation for the scalings used for 1 (1.1x and 1.4x offsets) comes from differences seen in spatial offsets between TPCs using Spring 2025 crossing muon data. New FHiCL files for g4 simulation point to these maps and are located in **JobConfigurations/standard/g4/sce_variations/**: - g4_enable_nominalspacecharge_sbnd.fcl - g4_enable_zerospacecharge_sbnd.fcl - g4_enable_doublespacecharge_sbnd.fcl Additionally, the standard LArSoft SCE FHiCL (**LArSoftConfigurations/spacecharge_sbnd.fcl**) now points to the updated CV map. For validation, a small sample of anode-cathode crossing muons was created at the gen stage, and processed with each of the SCE variation maps at the g4 stage. + - **Labels**: simulation + - **Reviewers**: + - **Assignees**: lkashur +- PR #739: Add Waveform Alignment module + - **Description**: Add a new module to that perform waveform alignment on PMT OpDetWaveform products. The module take OpDetWaveform from the decoding stage, then applies various timing calibration: correcting PPS path, total cable path from PMT to digitiser, digitser jittering, PMT response via cosmic calibration. The module will be part of the standard workflow to reconstruct PMT data at the reco1 stage, and input into the module to make OpHit and OpFlash. The fcl change is included in this PR: 1. sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd_data.fcl 2. sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco_data.fcl 3. sbndcode/JobConfigurations/standard/reco/reco1_data.fcl + - **Labels**: enhancement, pds, data + - **Reviewers**: fjnicolas + - **Assignees**: VCLanNguyen +- PR #754: Cafmakerjob unify pot data label + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: caf + - **Reviewers**: lyates17 + - **Assignees**: nathanielerowe +- PR #808: Feature/acastill opflash fixes + - **Description**: This PR includes some fixes to the OpFlash geometry algorithms. In particular it does: - Modify the geometry threshold algorithm calculation to account for channels that are not being reconstructed for each of the TPCs. This is done through the calibration database service, which is read after the constructor of `FlashGeoThreshold_tool.cc` , which requires to create a new method to initialise the algorithm after the database is read. - Modifies the geometry threshold algorithm to provide an independent threshold for the Y and the Z coordinate, which has been shown to be the optimal configuration (https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=41584) - Handles the drift distance estimation for cases in which the `eta_pmt` is not contained within the calibrated points. This PR needs https://github.com/SBNSoftware/sbndcode/pull/809 to be merged. + - **Labels**: pds, reco1/reco2 + - **Reviewers**: linyan-w + - **Assignees**: asanchezcastillo +- PR #792: Change RockBox Min Energy Deposited + - **Description**: This PR changes the min energy deposited used for rockbox from 100 MeV to 10 MeV. It also add two more fcls: - `prodgenie_corsika_proton_rockbox100_sbnd.fcl` To run with 100 MeV cut - `prodgenie_corsika_proton_rockbox_lowenergy_sbnd.fcl` To require energy deposit between 1 and 100 MeV The second fcl is possible thanks to a change to the `SimEnergyDepFakeTriggerFilter` module, which now can set bot the min and max deposited energy. Filter acceptance rate: | FHiCL | Cut on Deposited Energy | Pass Rate | |---|---|---| | `prodgenie_corsika_proton_rockbox_sbnd.fcl` | E_dep>10 MeV | 22.1% | | `prodgenie_corsika_proton_rockbox100_sbnd.fcl` | E_dep>100 MeV | 17.9% | | `prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd.fcl` | 11MeV | 23.5% + - **Labels**: simulation + - **Reviewers**: jzennamo, linyan-w + - **Assignees**: marcodeltutto +- PR #812: X-ARAPUCA timing update for consistency with PMT and CRT decoders + - **Description**: **Timing update to the X-ARAPUCA decoder including:** **- Same timing priority than PMT and CRT decoders: [0] SPEC-TDC, [1] PTB-HLT, [2] CAEN-only.** Additionally: - Enhancement of the debug output (decoder_hist.root, and debug output messages). - Encapsulation enhancement of the timing functionality. + - **Labels**: enhancement, pds, data + - **Reviewers**: VCLanNguyen + - **Assignees**: aliciavr +- PR #804: Frame Shift Module to Correct Timing in Data - PR For Develop + - **Description**: New module for timing reconstruction. Module make data products for downstream reconstruction. Add to reco2 workflow + - **Labels**: breaking change, reco1/reco2 + - **Reviewers**: lynnt20 + - **Assignees**: VCLanNguyen +- PR #783: Changing detsim drops for detvars + - **Description**: This is a PR into develop for fall production. - Keeping `sim::SimPhotonsLites` for PDS detvar samples (boost reco1 file size by 1%) - workflow: scrub opdaq from detsim, rerun opdaq only detsim - Keeping `SimEnergyDeposits_PriorSCE_G4` (boost reco1 file size by > 30%) - originally planned just for the 1xdata stat CV MC sample that detvar samples will scrub from - realized that we need it for wiremod and thus modifying the default drop + - **Labels**: maintenance, detsim + - **Reviewers**: tbwester + - **Assignees**: linyan-w + +--------------------------------------------------- + +* 2025-09-16 Nathaniel : Merge branch 'release/v10_10_02' +* 2025-09-16 Nathaniel : update to larsoft v10_10_02 +* 2025-09-16 nathanielerowe : Merge pull request #783 from SBNSoftware/Bugfix/linyan-keepdetsim +* 2025-09-16 nathanielerowe : Merge branch 'develop' into Bugfix/linyan-keepdetsim +* 2025-09-16 nathanielerowe : Merge pull request #804 from SBNSoftware/lnguyen/frame_shift_pr_dev +* 2025-09-16 nathanielerowe : Merge branch 'develop' into lnguyen/frame_shift_pr_dev +* 2025-09-16 nathanielerowe : Merge pull request #812 from SBNSoftware/feature/aliciavr_XARAPUCA_offline_decoder_v3.0-timing +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/aliciavr_XARAPUCA_offline_decoder_v3.0-timing +* 2025-09-16 nathanielerowe : Merge pull request #792 from SBNSoftware/feature/mdeltutt_rockbox +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/mdeltutt_rockbox +* 2025-09-16 nathanielerowe : Merge pull request #808 from SBNSoftware/feature/acastill_opflash_fixes +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/acastill_opflash_fixes +* 2025-09-16 nathanielerowe : Merge pull request #754 from SBNSoftware/cafmakerjob-unify-pot-data-label +* 2025-09-16 nathanielerowe : Merge branch 'develop' into cafmakerjob-unify-pot-data-label +* 2025-09-16 nathanielerowe : Merge pull request #739 from SBNSoftware/lnguyen/wfalign_v10_06_00 +* 2025-09-16 nathanielerowe : Merge branch 'develop' into lnguyen/wfalign_v10_06_00 +* 2025-09-16 nathanielerowe : Merge pull request #795 from SBNSoftware/feature/lkashur_sce_detvar +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/lkashur_sce_detvar +* 2025-09-16 nathanielerowe : Merge pull request #791 from pgreen135/feature/pgreen_g4rw_for_develop +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/pgreen_g4rw_for_develop +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/mdeltutt_rockbox +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/aliciavr_XARAPUCA_offline_decoder_v3.0-timing +* 2025-09-16 nathanielerowe : Merge branch 'develop' into lnguyen/frame_shift_pr_dev +* 2025-09-16 nathanielerowe : Merge branch 'develop' into cafmakerjob-unify-pot-data-label +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/lkashur_sce_detvar +* 2025-09-16 nathanielerowe : Merge branch 'develop' into Bugfix/linyan-keepdetsim +* 2025-09-16 nathanielerowe : Merge branch 'develop' into feature/acastill_opflash_fixes +* 2025-09-16 nathanielerowe : Merge branch 'develop' into lnguyen/wfalign_v10_06_00 +* 2025-09-16 nathanielerowe : Merge pull request #818 from SBNSoftware/revert-807-feature/acastill_tpcpmt_bfm_upgrade +* 2025-09-16 nathanielerowe : Revert "Feature/acastill tpcpmt bfm upgrade" +* 2025-09-15 nathanielerowe : Merge branch 'develop' into lnguyen/wfalign_v10_06_00 +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/acastill_opflash_fixes +* 2025-09-15 nathanielerowe : Merge pull request #807 from SBNSoftware/feature/acastill_tpcpmt_bfm_upgrade +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/acastill_tpcpmt_bfm_upgrade +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/acastill_opflash_fixes +* 2025-09-15 nathanielerowe : Merge branch 'develop' into lnguyen/wfalign_v10_06_00 +* 2025-09-15 nathanielerowe : Merge pull request #809 from SBNSoftware/feature/acastill_calibrationdatabase_update +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/acastill_calibrationdatabase_update +* 2025-09-15 nathanielerowe : unrevert sbnd_data for alejandro's PR +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/acastill_calibrationdatabase_update +* 2025-09-15 nathanielerowe : Merge pull request #756 from pgreen135/feature/pgreen_optical_path_tool +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/pgreen_optical_path_tool +* 2025-09-15 nathanielerowe : Update opt0finder_sbnd.fcl for pgreen PR +* 2025-09-15 linyan-w : Keep SimEnergyDeposits to accomodate potential G4 process name changes +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/pgreen_optical_path_tool +* 2025-09-15 nathanielerowe : revert sbnd_data version +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/pgreen_optical_path_tool +* 2025-09-15 nathanielerowe : Update product_deps +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/pgreen_optical_path_tool +* 2025-09-15 Patrick Green : adding larsim::OpticalPath to OpT0Finder cmakelists +* 2025-09-12 nathanielerowe : Merge branch 'develop' into feature/acastill_calibrationdatabase_update +* 2025-09-12 nathanielerowe : Update product_deps +* 2025-09-11 Alicia Vázquez-Ramos : Add intuitive HL channel constants for default status. Fix name of the timing refrence info product. +* 2025-09-11 Alejandro Sánchez Castillo : Add new database timestamp +* 2025-09-11 Linyan Wan : Make default to keep SimEnergyDeposits for wiremod +* 2025-09-10 lkashur : Create detsim_detvar.fcl +* 2025-09-10 nathanielerowe : Merge branch 'develop' into lnguyen/wfalign_v10_06_00 +* 2025-09-10 nathanielerowe : Merge branch 'develop' into cafmakerjob-unify-pot-data-label +* 2025-09-10 nathanielerowe : Merge branch 'develop' into feature/lkashur_sce_detvar +* 2025-09-10 nathanielerowe : Update product_deps +* 2025-09-10 nathanielerowe : Merge branch 'develop' into feature/lkashur_sce_detvar +* 2025-09-10 nathanielerowe : Merge branch 'develop' into feature/pgreen_g4rw_for_develop +* 2025-09-09 Marco Del Tutto : Decrease threshold to 1 MeV +* 2025-09-09 VCLanNguyen : add pmt response correction +* 2025-09-09 VCLanNguyen : Merge branch 'feature/acastill_calibrationdatabase_update' of https://github.com/SBNSoftware/sbndcode into lnguyen/wfalign_v10_06_00 +* 2025-09-09 Alejandro Sánchez Castillo : Merge branch 'develop' into feature/acastill_tpcpmt_bfm_upgrade +* 2025-09-09 Alejandro Sánchez Castillo : Change workflow so geo algorithm is configured after calibration database +* 2025-09-08 Alejandro Sánchez Castillo : Merge branch 'develop' into feature/acastill_calibrationdatabase_update +* 2025-09-08 Alejandro Sánchez Castillo : Merge branch 'develop' into feature/acastill_opflash_fixes +* 2025-09-04 VCLanNguyen : Merge branch 'lnguyen/frame_shift_pr_dev' of https://github.com/SBNSoftware/sbndcode into lnguyen/frame_shift_pr_dev +* 2025-09-04 Alicia Vázquez-Ramos : Clean code and add comments to the code +* 2025-09-04 Alicia Vázquez-Ramos : Updated general timing. Improved debug output. Enhanced rollover and computations management. New auxiliar functions. Enhanced X axis from plots of decoder_hist.root +* 2025-09-04 VCLanNguyen : set default debug as false +* 2025-09-03 VCLanNguyen : move parameters to fcl +* 2025-09-02 VCLanNguyen : add labels to fcl +* 2025-09-02 VCLanNguyen : add caf maker fcl parameter +* 2025-09-02 VCLanNguyen : add new flag to enable/disable timing correction in caf +* 2025-09-03 Marco Del Tutto : Ensure that the only dirt events pass with the low energy filter rockbox +* 2025-09-02 Alejandro Sánchez Castillo : Update calibration database to provide new atributed +* 2025-09-02 Alicia Vázquez-Ramos : Clean code from SPEC-TDC and PTB references access +* 2025-07-14 Alejandro Sánchez Castillo : Fix bug in flash geo calculation +* 2025-06-24 Alejandro Sánchez Castillo : Fix Drift for failure cases +* 2025-05-15 Alejandro Sánchez Castillo : Add Y-Z independent threshold for flash geo +* 2025-09-02 Alejandro Sánchez Castillo : Add score to the tpcpmt bfm +* 2025-07-14 Alejandro Sánchez Castillo : Fix typo +* 2025-07-14 Alejandro Sánchez Castillo : Cleanup +* 2025-07-14 Alejandro Sánchez Castillo : Cleanup +* 2025-07-14 Alejandro Sánchez Castillo : Cleanup +* 2025-07-14 Alejandro Sánchez Castillo : Update config fcl +* 2025-07-14 Alejandro Sánchez Castillo : Improve BFM with charge/light directionality +* 2025-09-02 Alicia Vázquez-Ramos : Get closest SPEC-TDC ETRIG reference to the raw timestamp of the event header +* 2025-09-02 Alicia Vázquez-Ramos : Bugfix on getting the PTB reference +* 2025-09-02 Alicia Vázquez-Ramos : Update timing reference priority to be [0] ETRIG, [1] PTB and [2] CAEN-only. Enhance ETRIG code and make a function for it. Remove RWM reference +* 2025-09-01 Alicia Vázquez-Ramos : Get closest PTB reference to the raw timestamp of the event header +* 2025-09-01 Alicia Vázquez-Ramos : Filter by allowed HL triggers +* 2025-08-29 VCLanNguyen : Merge branch 'develop' into lnguyen/frame_shift_pr_dev +* 2025-08-29 VCLanNguyen : remove comments +* 2025-08-29 VCLanNguyen : move products from sbndcode to sbnobj +* 2025-08-29 Alicia Vázquez-Ramos : Access to PTB products +* 2025-08-28 lkashur : Add filename printout to SpaceChargeSBND.cxx +* 2025-08-28 lkashur : Create detsim_enable_zerospacecharge_sbnd.fcl +* 2025-08-28 lkashur : Create detsim_enable_doublespacecharge_sbnd.fcl +* 2025-08-28 lkashur : Delete sbndcode/JobConfigurations/standard/g4/sce_variations directory +* 2025-08-28 VCLanNguyen : Turn missing TDC products exception to a log +* 2025-08-27 Alicia Vázquez-Ramos : Starting point after latest XA top-hat plot timing updates +* 2025-08-26 VCLanNguyen : add reco2 fcl + some fixes +* 2025-08-25 Nathaniel : Merge tag 'v10_09_00' into develop +* 2025-08-25 nathanielerowe : Merge branch 'develop' into Bugfix/linyan-keepdetsim +* 2025-08-25 VCLanNguyen : add a new variable to correct at CAF +* 2025-08-25 lkashur : Add "rockbox" to zero variation fhicl +* 2025-08-25 lkashur : Add "rockbox" to nominal variation fhicl +* 2025-08-25 lkashur : Add "rockbox" to double variation fhicl +* 2025-08-25 lkashur : Add path to updated SCE CV map in spacecharge_sbnd.fcl +* 2025-08-21 Lane Kashur : Add folder for SCE detector variations at g4 stage +* 2025-08-20 Marco Del Tutto : Add fcls for rockbox with min dep energy of 100, and with dep energy btw 1 and 100 +* 2025-08-20 Marco Del Tutto : Set min energy for rockbox to 10 MeV instead of 100 MeV +* 2025-08-20 Marco Del Tutto : Add option to set max dep energy +* 2025-08-19 VCLanNguyen : add frame shift to reco2 fcl +* 2025-08-18 nathanielerowe : Merge branch 'develop' into feature/pgreen_g4rw_for_develop +* 2025-08-17 Patrick Green : removing std::move call and adding larsim::OpticalPath to CMakeLists +* 2025-08-15 VCLanNguyen : add saving additional info +* 2025-08-14 Linyan Wan : Revert the default to drop all SimEnergyDeposits +* 2025-08-14 Linyan Wan : Add new drop file to keep SimEnergyDepo for detvars +* 2025-08-14 Linyan Wan : Keep sim::SimEnergyDeposits_ionandscint_PriorSCE_G4 and drop sim::SimEnergyDeposits_ionandscint__G4 +* 2025-08-13 Linyan Wan : Save SimEnergyDeposits_ionandscint_priorSCE_G4 for future detvar +* 2025-08-12 VCLanNguyen : Add a new object TimingInfo to store timestamp in unix format +* 2025-08-11 Linyan Wan : Keep sim::SimPhotonsLites for PDS detvar +* 2025-08-06 VCLanNguyen : first commit +* 2025-08-04 Patrick Green : add set of cafmaker fhicls for g4rw +* 2025-07-24 Patrick Green : adding cafmaker fhicl for g4rw +* 2025-07-21 Patrick Green : clarifying comment +* 2025-07-17 nathanielerowe : Merge pull request #758 from SBNSoftware/release/v10_06_00_03 +* 2025-07-17 Nathaniel : Bump versioning for production patch release +* 2025-07-17 nathanielerowe : Merge pull request #750 from SBNSoftware/feature/lynnt_ccnuefilter_prod +* 2025-07-16 Patrick Green : implementing sbnd case of optical path tool for semi-analytical model +* 2025-07-16 Patrick Green : change needed for updated SemiAnalyticalModel constructor +* 2025-07-15 nathanielerowe : Update cafmakerjob_sbnd_data_sce_bnblight.fcl +* 2025-07-15 nathanielerowe : Update cafmakerjob_sbnd_data_bnblight.fcl +* 2025-07-15 nathanielerowe : Update cafmakerjob_sbnd_data_sce_offbeamlight.fcl +* 2025-07-15 nathanielerowe : Update cafmakerjob_sbnd_data_offbeamlight.fcl +* 2025-07-08 lynnt20 : fix to ensure that events with only numu dirt do not pass +* 2025-07-02 lynnt20 : add new `ccnuefilter` filter block, remove deprecated fcl block +* 2025-07-02 lynnt20 : create new rockbox fcl that includes ccnue filter +* 2025-07-02 lynnt20 : make comment syntax uniform +* 2025-07-08 VCLanNguyen : breakdown individual correction factors +* 2025-07-08 VCLanNguyen : update reco1 fcl to pick up new waveforms, fix bugs in opflash finder fcls +* 2025-05-16 VCLanNguyen : fix correction for timing board +* 2025-05-15 VCLanNguyen : clean old comments +* 2025-05-15 VCLanNguyen : Add timing module From 3b5c750cce6495349cf71d05adf30dc218bd459f Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Tue, 16 Sep 2025 11:11:53 -0500 Subject: [PATCH 1261/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 78b42835c..b4d0b20bb 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_10_02`. | Major release | [Release Notes](ReleaseNotes101002.html) |`v10_06_00_05`. | Patch release | [Release Notes](ReleaseNotes10060005.html) |`v10_09_00`. | Major release | [Release Notes](ReleaseNotes100900.html) |`v10_06_00_04`. | Patch release | [Release Notes](ReleaseNotes10060004.html) From 711525b33c78c5f372c4e695a89b9ef665175842 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Tue, 16 Sep 2025 11:12:19 -0500 Subject: [PATCH 1262/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index b4d0b20bb..cdc0b99be 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,7 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- - |`v10_10_02`. | Major release | [Release Notes](ReleaseNotes101002.html) + |`v10_10_02`. | Major release | [Release Notes](ReleaseNotes101002.md) |`v10_06_00_05`. | Patch release | [Release Notes](ReleaseNotes10060005.html) |`v10_09_00`. | Major release | [Release Notes](ReleaseNotes100900.html) |`v10_06_00_04`. | Patch release | [Release Notes](ReleaseNotes10060004.html) From 6473abb89d5a6ab82920620edbc73c167ab74780 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Thu, 18 Sep 2025 11:07:01 -0500 Subject: [PATCH 1263/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 060f5ec7f..e32a84298 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v10_10_03` | 'sbncode' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03) 'sbnana' `v10_01_02` | 'sbnana' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02) `v10_10_02` | 'sbncode' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_02) `v10_06_00_05` | 'sbncode' production patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_06_00_05) From 6d5b5af5089f736635713d0b126509c59ae3ad49 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Thu, 18 Sep 2025 11:15:22 -0500 Subject: [PATCH 1264/1437] Create sbncode_v10_10_03.md --- .../Releases/sbncode_v10_10_03.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03.md new file mode 100644 index 000000000..64ae65dc3 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03.md @@ -0,0 +1,60 @@ +--- +layout: page +title: sbncode_v10_10_03 +toc: true +--- + +sbncode_v10_10_03 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v10_10_02 and v10_10_03](https://github.com/SBNSoftware/sbncode/compare/v10_10_02...v10_10_03) + +Date +--------------------------------------------------- +18 September 2025 + +Purpose +--------------------------------------------------- +* Feature release + +New features +--------------------------------------------------- +A new release of sbncode (v10_10_03) has been cut and distributed + +* sbnobj (v10_02_01): + + Includes: + + PRs go here + +* sbnanaobj (v10_00_08): + + Includes: + + PRs go here + +* sbnalg (v10_10_03): + + Using(updated dependencies): + + * sbnobj v10_02_01 + * sbnanaobj v10_00_08 + +* sbncode (v10_10_03): + + Using (updated dependencies): + + * larsoft v10_10_03 + * sbndata v01_08 + * sbnalg v10_10_03 + + Includes: + + PRs go here + +Extra info +--------------------------------------------------- +Uses LArSoft v10_10_03. Release notes for the last few LArSoft suites here: +* [LArSoft v10_10_03 release notes](https://github.com/LArSoft/larsoft/releases/tag/v10_10_03) From 27676917bd5fe581ab5d60d8d5e971f67211a26a Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 19 Sep 2025 10:38:38 -0500 Subject: [PATCH 1265/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index cdc0b99be..cc17abe20 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_10_03`. | Major release | [Release Notes](ReleaseNotes101003.md) |`v10_10_02`. | Major release | [Release Notes](ReleaseNotes101002.md) |`v10_06_00_05`. | Patch release | [Release Notes](ReleaseNotes10060005.html) |`v10_09_00`. | Major release | [Release Notes](ReleaseNotes100900.html) From 0bae10a9d8efd60ef894dc066f95cce842c57f5c Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 19 Sep 2025 10:42:49 -0500 Subject: [PATCH 1266/1437] Create ReleaseNotes101003.md --- sbndcode_wiki/Releases/ReleaseNotes101003.md | 105 +++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes101003.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes101003.md b/sbndcode_wiki/Releases/ReleaseNotes101003.md new file mode 100644 index 000000000..7bd84f888 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes101003.md @@ -0,0 +1,105 @@ +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_10_03](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_10_03/sbndcode-v10_10_03.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- +--- +layout: page +title: ReleaseNotes101003 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.10.03 | 19 Sep 2025 | [ReleaseNotes](ReleaseNotes101003.html) | +| --- | --- | --- | + + + +sbndcode v10_10_03 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_10_03](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_10_03/sbndcode-v10_10_03.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_10_02 to v10_10_03 +- PR #817: Fix conflicts with new larsim version + - **Description**: This PR is a fix for https://github.com/SBNSoftware/sbndcode/pull/807 after including the new optical path tool in https://github.com/SBNSoftware/sbndcode/pull/756 . + - **Labels**: bug + - **Reviewers**: linyan-w + - **Assignees**: asanchezcastillo +- PR #819: Re-add changes from tpcpmtbfm_upgrade + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #824: adding TrackHitFillRRStartCut: 1000 and TrackHitFillRREndCut: 1000 to cafmakerjob_sbnd_sce.fcl + - **Description**: Please provide a detailed description of the changes this pull request introduces. $ + - **Reviewers**: + - **Assignees**: sungbinoh +- PR #813: Add lightpropagationcorrection module + - **Description**: This PR implements a new module for applying light propagation corrections to OpFlash timing based on TPC information. It does select the OpFlash matched to every slice and correct the time of the flash based on the space points in the slice. After the correction, a new object `CorrectedOpFlash` is created as well to store the new timing information, namely: - The original time of the flash - The time of the neutrino at the upstream wall obtained using light-only corrections - The time of the neutrino at the upstream wall obtained using neutrino time of flight correction from the TPC vertex - The time of the neutrino at the upstream wall obtained using neutrino time of flight correction from the TPC vertex and the light propagation time from the TPC spacepoints. This new object is also associated to its father slice and OpFlash. The module supports the use of the OpT0Finder and BarycenterFM tools for initial charge/light matching though the latter is used by default as it is a model-independent tool. The module is included on `reco2_data.fcl` to be run as a part of the standard reconstruction workflow. This PR requires merging of the following PRs: https://github.com/SBNSoftware/sbndcode/pull/807 https://github.com/SBNSoftware/sbnobj/pull/140 https://github.com/SBNSoftware/sbnanaobj/pull/157 https://github.com/SBNSoftware/sbncode/pull/566 + - **Labels**: enhancement + - **Reviewers**: linyan-w + - **Assignees**: asanchezcastillo +- PR #826: yz normalization bugfix + - **Description**: Please provide a detailed description of the changes this pull request introduces. This PR fixes a bug in correcting for YZ normalization. Since it uses scale from the correction map that is calculated as global median divided by local median (following ProtoDUNE method), then dQ/dx should be multiplied by that factor and not divided. + - **Labels**: bug, reco1/reco2 + - **Reviewers**: mrmooney + - **Assignees**: sxy1439 + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-09-19 Nathaniel : Merge branch 'release/v10_10_03' +* 2025-09-19 Nathaniel : Update to larsoft v10_10_03 +* 2025-09-19 nathanielerowe : Merge pull request #826 from SBNSoftware/bugfix/yz_nonuniformity +* 2025-09-19 nathanielerowe : Merge branch 'develop' into bugfix/yz_nonuniformity +* 2025-09-19 nathanielerowe : Merge pull request #813 from SBNSoftware/feature/acastill_correctedOpFlash +* 2025-09-19 nathanielerowe : Merge branch 'develop' into feature/acastill_correctedOpFlash +* 2025-09-19 Alejandro Sánchez Castillo : check nuscore exists before accessing and not produce output file by default +* 2025-09-18 nathanielerowe : Merge branch 'develop' into bugfix/yz_nonuniformity +* 2025-09-18 nathanielerowe : Merge pull request #824 from sungbinoh/feature/sungbino_caf_hit_rr +* 2025-09-18 nathanielerowe : Merge branch 'develop' into feature/sungbino_caf_hit_rr +* 2025-09-18 nathanielerowe : swap reco2_data.fcl module for possible ci fix +* 2025-09-18 Shweta Yadav : yz scale bugfix +* 2025-09-18 nathanielerowe : Merge branch 'develop' into feature/acastill_correctedOpFlash +* 2025-09-18 nathanielerowe : Merge pull request #819 from SBNSoftware/bugfix/tpcpmtbfm_upgrade +* 2025-09-18 nathanielerowe : Merge branch 'develop' into bugfix/tpcpmtbfm_upgrade +* 2025-09-18 nathanielerowe : Merge branch 'develop' into feature/acastill_correctedOpFlash +* 2025-09-16 sungbinoh : adding TrackHitFillRRStartCut: 1000 and TrackHitFillRREndCut: 1000 to cafmakerjob_sbnd_sce.fcl +* 2025-09-16 Alejandro Sánchez Castillo : Merge pull request #817 from SBNSoftware/bugfix/acastill_bfm_larsim +* 2025-09-16 Nathaniel : Merge tag 'v10_10_02' into develop +* 2025-09-16 nathanielerowe : Re-add changes from tpcpmtbfm_upgrade +* 2025-09-16 Alejandro Sánchez Castillo : Merge branch 'develop' into bugfix/acastill_bfm_larsim +* 2025-09-16 Alejandro Sánchez Castillo : Fix conflicts with new larsim version +* 2025-09-15 nathanielerowe : Merge branch 'develop' into feature/acastill_correctedOpFlash +* 2025-09-11 Alejandro Sánchez Castillo : Cleanup and remove unused functions/variables +* 2025-09-11 Alejandro Sánchez Castillo : Update sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc +* 2025-09-08 Alejandro Sánchez Castillo : Fix bugs and cleanup +* 2025-09-08 Alejandro Sánchez Castillo : Add lightpropagationcorrection to cafmaker +* 2025-09-08 Alejandro Sánchez Castillo : Add lightpropagationcorrection module From 538b0b15d561430cef32538771c483879f13cc5e Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 19 Sep 2025 15:51:22 -0500 Subject: [PATCH 1267/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index cc17abe20..4fdc04cd0 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_10_03_01`. | Major release | [Release Notes](ReleaseNotes10100301.md) |`v10_10_03`. | Major release | [Release Notes](ReleaseNotes101003.md) |`v10_10_02`. | Major release | [Release Notes](ReleaseNotes101002.md) |`v10_06_00_05`. | Patch release | [Release Notes](ReleaseNotes10060005.html) From 82363b412cbe1b7c94995b3506806d0cdbefaee9 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 19 Sep 2025 15:55:29 -0500 Subject: [PATCH 1268/1437] Create ReleaseNotes10100301.md --- .../Releases/ReleaseNotes10100301.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10100301.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10100301.md b/sbndcode_wiki/Releases/ReleaseNotes10100301.md new file mode 100644 index 000000000..36344c45f --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10100301.md @@ -0,0 +1,37 @@ +--- +layout: page +title: ReleaseNotes10100301 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.10.03.01 | 19 Sep 2025 | [ReleaseNotes](ReleaseNotes10100301.html) | +| --- | --- | --- | + + + +sbndcode v10_10_03_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_10_03_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_10_03_01/sbndcode-v10_10_03_01.html) + +Change List +========================================== +### Release Notes for [sbndcode] from v10_10_03 to v10_10_03_01 +- PR #828: hot fix fcl to run reco1 w/ dnn roi + - **Description**: One fcl to run reco1 w/ dnn roi. The planned sp both rois + no sp workflow needs fix in the reco1 process sequence which involves validation and also is difficult to maintain. $${\color{red}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}$$ $${\color{red}\bf{\textrm{IMPORTANT UPDATE June 22nd 2025:}}}$$ If you are making a PR which is intended as a patch for the CURRENT production (which started in Spring 2025), you must make two PRs: one for develop and one for the production/v10_06_00 branch. $${\color{red}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}$$ + - **Labels**: bug + - **Reviewers**: + - **Assignees**: linyan-w + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-09-19 Nathaniel : Merge branch 'release/v10_10_03_01' +* 2025-09-19 Nathaniel : a few fixes +* 2025-09-19 nathanielerowe : Merge pull request #828 from SBNSoftware/bugfix_dnnroiworkflow +* 2025-09-19 nathanielerowe : Merge branch 'develop' into bugfix_dnnroiworkflow +* 2025-09-19 Linyan Wan : file to run reco1 w/ dnn roi. the sp + nosp workflow needs fix in the process sequence +* 2025-09-19 Nathaniel : Merge tag 'v10_10_03' into develop From e75b61e7273e2dc34029e37a760e85e78ccc5788 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 22 Sep 2025 18:29:20 -0400 Subject: [PATCH 1269/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 7c4183fd4..2301ed450 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -63,28 +63,30 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| Spring25 - Low Energy 1-100MeV (200 events p/ file pre-filter) | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | reco2 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | | DNN ROI + low-trad threshold (100 events p/ file pre-filter) | MC2025B | v10_09_00 | 30k | reco1 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | Spring25 - BNB + Cosmics 1e20 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~6.8M | reco1 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| --- | --- | v10_06_00_05 | --- | reco2 | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_05 | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics 1e20 POT (500 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~2.2M | reco1 | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | -| --- | --- | v10_06_00_05 | --- | reco2 | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_05 | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics 5e18 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00 | ~170k | reco1 | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | @@ -105,76 +107,62 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics (100 events p/ file pre-filter) | MC2025B | v10_06_00 | ~680k | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | v10_06_00_02 | --- | reco2 | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics (500 events p/ file pre-filter) | MC2025B | v10_06_00 | ~510k | reco1 | mc_MCP2025B_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | v10_06_00_02 | --- | reco2 | mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Nue CC | MC2025B | v10_06_02 | 556k | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_reco1_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_caf_flat_caf_sbnd | | Spring25 validation - BNB + Cosmics (100 events p/ file pre-filter) | MC2025A | v10_04_06_01 | 260k | reco1 | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 validation - Intime Cosmics (500 events p/ file pre-filter) | MC2025A | v10_04_06_01 | 240k | reco1 | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Feb25 Workshop - BNB + Cosmics | MC2025A | v10_04_03 | 60k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_reco2_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_flat_caf_sbnd | | Feb25 Workshop - Intrinsic Nue + Cosmics | MC2025A | v10_04_01_01 | 7.5k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_reco2_sbnd | | Feb25 Workshop - FullOsc + Cosmics | MC2025A | v10_04_01_01 | 10k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_reco2_sbnd | | Feb25 Workshop - BNB + Cosmics | MC2025A | v10_04_01 | 60k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_caf_flat_caf_sbnd | | Feb25 Workshop - In-Time Cosmics | MC2025A | v10_04_01 | 20k | reco1 | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_caf_flat_caf_sbnd | | BNB + Cosmics - w/o diffusion | MC2024B | v09_91_02_02 | 50504 | CV reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_50k_sbnd | | --- | --- | --- | --- | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_caf_flat_caf_sbnd | | BNB + Cosmics CV | MC2024B | v09_91_02_02 | 316623 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_flat_caf_sbnd | | BNB + Cosmics GENIE CV | MC2023B | v09_75_03_02 | 102189 | reco1 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_wcsim_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_flat_caf_sbnd | | BNB + Cosmics GiBUU | MC2023B | v09_75_03_02 | 102189 | reco1 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_gibuu_g4_wcsim_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_caf_flat_caf_sbnd | From 992babb279d2f96f31f63004255d6ced34966e30 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 23 Sep 2025 14:59:07 -0400 Subject: [PATCH 1270/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2301ed450..992728d0c 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -63,12 +63,6 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| Spring25 - Low Energy 1-100MeV (200 events p/ file pre-filter) | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | | DNN ROI + low-trad threshold (100 events p/ file pre-filter) | MC2025B | v10_09_00 | 30k | reco1 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | From ca2502f6c62d98d70ce56cd5016e604903ad8983 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Wed, 24 Sep 2025 17:18:32 -0500 Subject: [PATCH 1271/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 4fdc04cd0..631edd7f0 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_10_03_02`. | Major release | [Release Notes](ReleaseNotes10100302.md) |`v10_10_03_01`. | Major release | [Release Notes](ReleaseNotes10100301.md) |`v10_10_03`. | Major release | [Release Notes](ReleaseNotes101003.md) |`v10_10_02`. | Major release | [Release Notes](ReleaseNotes101002.md) From c0eb5c748effa0139cef8959572f087fccc62a6a Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Wed, 24 Sep 2025 17:19:48 -0500 Subject: [PATCH 1272/1437] Create ReleaseNotes10100302.md --- .../Releases/ReleaseNotes10100302.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10100302.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10100302.md b/sbndcode_wiki/Releases/ReleaseNotes10100302.md new file mode 100644 index 000000000..84d992e3c --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10100302.md @@ -0,0 +1,61 @@ +--- +layout: page +title: ReleaseNotes10100302 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.10.03.02 | 24 Sep 2025 | [ReleaseNotes](ReleaseNotes10100302.html) | +| --- | --- | --- | + + + +sbndcode v10_10_03_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_10_03_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_10_03_02/sbndcode-v10_10_03_02.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_10_03_01 to v10_10_03_02 +- PR #829: Patching for production - filtered + dropped workflow + - **Description**: One more patch for saving both the filtered + dropped workflow for production purpose + - **Labels**: bug + - **Reviewers**: + - **Assignees**: linyan-w +- PR #831: Setting CAF cnnid wire to look for DNN ROI + - **Description**: Setting CAF cnnid wire to look for DNN ROI + - **Labels**: bug + - **Reviewers**: + - **Assignees**: linyan-w + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-09-24 Nathaniel : Merge branch 'release/v10_10_03_02' +* 2025-09-24 Nathaniel : update sbndcode version +* 2025-09-24 nathanielerowe : Merge pull request #831 from SBNSoftware/bugfix_CAFcnnid +* 2025-09-24 nathanielerowe : Merge branch 'develop' into bugfix_CAFcnnid +* 2025-09-24 nathanielerowe : Merge pull request #829 from SBNSoftware/bugfix_dnnroiworkflow +* 2025-09-23 Linyan Wan : Data version +* 2025-09-23 Linyan Wan : Setting MC CAF to look for DNN ROI for cnnid wire +* 2025-09-22 nathanielerowe : Merge branch 'develop' into bugfix_dnnroiworkflow +* 2025-09-22 Linyan Wan : Patching for production - filtered + dropped workflow +* 2025-09-19 Nathaniel : Merge tag 'v10_10_03_01' into develop From 69e521cb725abfac6e27846a4849e79ffc51bf2a Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 30 Sep 2025 12:46:47 -0400 Subject: [PATCH 1273/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 992728d0c..417a0f665 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -63,6 +63,12 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| Spring25 - Low Energy 1-100MeV (200 events p/ file pre-filter) | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | reco2 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | | DNN ROI + low-trad threshold (100 events p/ file pre-filter) | MC2025B | v10_09_00 | 30k | reco1 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | From acb5687788b6dd6b2c62a6b892f76340ad58c33f Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Tue, 30 Sep 2025 17:35:13 -0500 Subject: [PATCH 1274/1437] Create sbncode_v10_10_03_01.md --- .../Releases/sbncode_v10_10_03_01.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_01.md new file mode 100644 index 000000000..19ac490ab --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_01.md @@ -0,0 +1,33 @@ +--- +layout: page +title: sbncode_v10_10_03_01 +toc: true +--- + +sbncode_v10_10_03_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v10_10_03 and v10_10_03_01](https://github.com/SBNSoftware/sbncode/compare/v10_10_03...v10_10_03_01) + +Date +--------------------------------------------------- +19 September 2025 + +Purpose +--------------------------------------------------- +* Patch release for SBND POT counting + +New features +--------------------------------------------------- +A patch release of sbncode (v10_10_03_01) has been cut and distributed + +* sbncode (v10_10_03_01): + + Includes: + + SBND POT develop hot fix [#580](https://github.com/SBNSoftware/sbncode/pull/580): Hotfix for some SBND POT fcl files. + +Extra info +--------------------------------------------------- From 222472ef90c3160005ba551647e40d6cfb141a75 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:00:22 -0500 Subject: [PATCH 1275/1437] Update sbncode_v10_10_03.md --- .../Releases/sbncode_v10_10_03.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03.md index 64ae65dc3..02178bd13 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03.md @@ -27,13 +27,17 @@ A new release of sbncode (v10_10_03) has been cut and distributed Includes: - PRs go here + * Calib NTuple CRT Timing Additions [#139](https://github.com/SBNSoftware/sbnobj/pull/139): Adds SBND CRT specific branches for calibration tuples. + * Feature/acastill opflashtiming [#140](https://github.com/SBNSoftware/sbnobj/pull/140): Introduces the `CorrectedOpFlashTiming` object that stores OpFlash time after corrections. + * Feature/acastill tpcpmtbfm upgrade [#144](https://github.com/SBNSoftware/sbnobj/pull/144): Adds new attributes to `TPCPMTBarycenterFM` to store chi2 and score used to do matching. * sbnanaobj (v10_00_08): Includes: - PRs go here + * Add score and chi2 to tmppmt bfm SR [#156](https://github.com/SBNSoftware/sbnanaobj/pull/156): Adds new attributes to `SRTPCPMTBarycenterMatch` to store chi2 and score used to do matching + * Feature/acastill corrected opflash [#157](https://github.com/SBNSoftware/sbnanaobj/pull/157): Introduces the `SRCorrectedOpFlash` object that stores OpFlash time after corrections. + * Update SRSBNDTimingInfo.h [#158](https://github.com/SBNSoftware/sbnanaobj/pull/158): Uses same default values for `SRSBNDTrigger` and normal `SRTrigger`. * sbnalg (v10_10_03): @@ -46,13 +50,16 @@ A new release of sbncode (v10_10_03) has been cut and distributed Using (updated dependencies): - * larsoft v10_10_03 + * larsoft v10_10_03 * sbndata v01_08 * sbnalg v10_10_03 Includes: - PRs go here + * CAFMaker changes to accommodate to Pandora track/shower discrimination changes [#546](https://github.com/SBNSoftware/sbncode/pull/546): Updates `FillPFPVars` in the CAFMaker so the BDT tools used pick up the right variables for ICARUS Pandora track/shower discrimination. + * Calib NTuple CRT Timing Additions [#557](https://github.com/SBNSoftware/sbncode/pull/557): Additions to SBND CRT calibration tuples. + * Add tpcpmt bfm score and chi2 to CAF files [#565](https://github.com/SBNSoftware/sbncode/pull/565): New attributes to `TPCPMTBarycenterFM` object. + * Feature/acastill corrected opflash [#566](https://github.com/SBNSoftware/sbncode/pull/566): Introduces `CorrectedOpFlashTiming` object that stores the OpFlash time after corrections to improve timing resolution. Extra info --------------------------------------------------- From 3de2a0770c82122df566fc4c3a3dc10cdff6561f Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:04:41 -0500 Subject: [PATCH 1276/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index e32a84298..29b83bfc4 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,9 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +'sbnana' `v10_01_02_01` | 'sbnana' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02_01) +`v10_10_03_02` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_02) +`v10_10_03_01` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_01) `v10_10_03` | 'sbncode' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03) 'sbnana' `v10_01_02` | 'sbnana' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02) `v10_10_02` | 'sbncode' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_02) From 2d732013fa5d512dc1c22333a14d12f0eaee09fa Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:28:10 -0500 Subject: [PATCH 1277/1437] Create sbncode_v10_10_03_02.md --- .../Releases/sbncode_v10_10_03_02.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_02.md new file mode 100644 index 000000000..bc7de2b06 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_02.md @@ -0,0 +1,51 @@ +--- +layout: page +title: sbncode_v10_10_03_02 +toc: true +--- + +sbncode_v10_10_03_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +A git comparison of all the code changes between this release and the previous one: [Compare v10_10_03_01 and v10_10_03_02](https://github.com/SBNSoftware/sbncode/compare/v10_10_03_01...v10_10_03_02) + +Date +--------------------------------------------------- +30 September 2025 + +Purpose +--------------------------------------------------- +* Patch release for SPINE workshop + +New features +--------------------------------------------------- +A new release of sbncode (v10_10_03_02) has been cut and distributed + +* sbnanaobj (v10_00_09): + + Includes: + + * Feature/mueller spine [#145](https://github.com/SBNSoftware/sbnanaobj/pull/145): Includes SPINE data products into the StandardRecord object. + +* sbnalg (v10_10_03_01): + + Using(updated dependencies): + + * sbnanaobj v10_00_09 + +* sbncode (v10_10_03_02): + + Using (updated dependencies): + + * sbnalg v10_10_03_01 + + Includes: + + * Update FillTrigger.cxx [#577](https://github.com/SBNSoftware/sbncode/pull/577): Update aimed at resolving an SBND CI issue + * Update Supera dependency of sbncode to remove X-ARAPUCA products [#581](https://github.com/SBNSoftware/sbncode/pull/581): Removes X-ARAPUCA products from SBND Supera configurations. + * Note this is accompanied by update to the Supera tag, to commit [26e2abb](https://github.com/DeepLearnPhysics/Supera/tree/26e2abb92fe757510ca0a7e54444e8018aa721f7) + +Extra info +--------------------------------------------------- From 451845bb0da59104bb3def401f9bd1c227dc4f33 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:29:25 -0500 Subject: [PATCH 1278/1437] Create sbnana_v10_01_02_01.md --- .../Releases/sbnana_v10_01_02_01.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02_01.md new file mode 100644 index 000000000..9e5af6e4b --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02_01.md @@ -0,0 +1,29 @@ +--- +layout: page +title: Release Notes Page +toc: true +--- + +sbnana v10_01_02_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://github.com/SBNSoftware/SBNSoftware.github.io/tree/master/AnalysisInfrastructure/ReleaseManagement/Releases) + +Date +--------------------------------------------------- +30 September 2025 + +Purpose +--------------------------------------------------- +* sbnana patch release for SPINE workshop + +New features +--------------------------------------------------- + +A patch release of sbnana v10_01_02 has been cut and distributed. + +Updated dependencies: +sbnanaobj v10_00_09 + +Extra info +--------------------------------------------------- From 99536c1c4952d0f6bed22a55f72b3472f0679126 Mon Sep 17 00:00:00 2001 From: Marco Del Tutto Date: Fri, 3 Oct 2025 11:18:01 -0500 Subject: [PATCH 1279/1437] Update --- sbndcode_wiki/The_SBND_flux_files.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode_wiki/The_SBND_flux_files.md b/sbndcode_wiki/The_SBND_flux_files.md index 11c95a56c..9c23dc8dd 100644 --- a/sbndcode_wiki/The_SBND_flux_files.md +++ b/sbndcode_wiki/The_SBND_flux_files.md @@ -240,6 +240,7 @@ BNB simulation in reverse horn current: /pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/rhc/ ``` First production (20250707-14:46) is configuration `a`. This has a bug, do NOT use. + Second production (20250808-16:47) is configuration `b`. #### Beam-Dump @@ -249,5 +250,6 @@ BNB simulation in beam dump mode: ``` First production (july 2025) is configuration `a`. This has a bug, do NOT use. + Second production (20250808-16:48) is configuration `b`. From 7ffcf5f76d4eb1f9bf3515e3c70b6bbf6542d9c2 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 6 Oct 2025 14:47:21 -0400 Subject: [PATCH 1280/1437] Update sample.md adding FallValidations25 samples --- sbn/sbnprod_wiki/sample.md | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 417a0f665..54aaf650e 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -63,6 +63,24 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| Fall25 Validation - Intime - DNN (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~80k | reco1 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | +| Fall25 Validation - BNB+Cosmics - DNN (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~150k | reco1 | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd_150k| +| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd_150k | +| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | +| --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd_150k | +| --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd_150k | +| Fall25 Validation - BNB+Cosmics (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~150k | reco1 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_sbnd_150k | +| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_larcv_sbnd_150k | +| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | +| --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd_150k | +| --- | --- | --- | --- | flat caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd_150k | | Spring25 - Low Energy 1-100MeV (200 events p/ file pre-filter) | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | @@ -446,6 +464,32 @@ Data SBN Production Samples | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | +| Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | +| --- | --- | --- | reco1 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_larcvreco1_sbnd | +| --- | --- | --- | reco2 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_caf_sbnd | +| --- | --- | --- | flat caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_flatcaf_sbnd | +| Fall25 Validation - FullRun1 - RollingDev - bnblight - DNN | v10_10_03_02 | ~75k | decode | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_decode_sbnd | +| --- | --- | --- | reco1 | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_larcvreco1_sbnd | +| --- | --- | --- | reco2 | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_caf_sbnd | +| --- | --- | --- | flat caf | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_flatcaf_sbnd | +| Fall25 Validation - FullRun1 - RollingDev - offbeamlight - DNN | v10_10_03_02 | ~40k | decode | data_MCP2025B_FullRun1_RollingDev_offbeamlight_offbeamlight_v10_10_03_02_decode_sbnd | +| --- | --- | --- | reco1 | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_larcvreco1_sbnd | +| --- | --- | --- | reco2 | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_caf_sbnd | +| --- | --- | --- | flat caf | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_flatcaf_sbnd | +| DNN ROI + low-trad threshold | v10_06_00 | ~30k | decode | data_MCP2025B_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_decode_sbnd | +| --- | v10_09_00 | --- | reco1 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025B_DNNROI_bnblight_v10_09_00_larcvreco1_sbnd | +| --- | --- | --- | reco2 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_DNNROI_bnblight_v10_09_00_histreco2_sbnd | | DNN ROI + low-trad threshold | v10_06_00 | ~30k | decode | data_MCP2025B_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_decode_sbnd | | --- | v10_09_00 | --- | reco1 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_DNNROI_bnblight_v10_09_00_larcvreco1_sbnd | From 0404af7230f243f39a50e6d75da37fcd31dd5bf3 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 7 Oct 2025 09:28:40 -0400 Subject: [PATCH 1281/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 54aaf650e..9833d0543 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -467,10 +467,10 @@ Data SBN Production Samples | Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_larcvreco1_sbnd | -| --- | --- | --- | reco2 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco2_sbnd | -| --- | --- | --- | calib tuple | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_histreco2_sbnd | -| --- | --- | --- | caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_caf_sbnd | -| --- | --- | --- | flat caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_flatcaf_sbnd | +| --- | --- | --- | reco2 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_caf_sbnd | +| --- | --- | --- | flat caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_flatcaf_sbnd | | Fall25 Validation - FullRun1 - RollingDev - bnblight - DNN | v10_10_03_02 | ~75k | decode | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_larcvreco1_sbnd | From 16bd8e80a5360ae9f8b69d1a4bb4c42bb49a4829 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 7 Oct 2025 13:58:26 -0400 Subject: [PATCH 1282/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 9833d0543..241462eb5 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -70,7 +70,7 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Fall25 Validation - BNB+Cosmics - DNN (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~150k | reco1 | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd_150k| -| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd_150k | +| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd_150k | | --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd_150k | From 7d200b23968d3257e3f037dd0a6a2427122af11b Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Wed, 8 Oct 2025 12:32:10 -0700 Subject: [PATCH 1283/1437] Update MFTU.md --- sbn_online_wiki/ACnet/MFTU.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbn_online_wiki/ACnet/MFTU.md b/sbn_online_wiki/ACnet/MFTU.md index b1ee2c687..be93aee9e 100644 --- a/sbn_online_wiki/ACnet/MFTU.md +++ b/sbn_online_wiki/ACnet/MFTU.md @@ -7,6 +7,13 @@ title: Multi-Function Timing Unit (MFTU) The MFTU is the latest interface between the ACnet timing systems (TCLK or MIBS) and users of their timing and control signals. The MFTU replaces the previous Internet Rack Monitor (IRM). The unit decodes the incoming TCLK (or MIBS) event stream and converts them into simple TTL digital outputs with a programmable delays and widths. The unit can also accept fast asynchronous signals and use the TCLK events to gate the fast signals in order to select a subset of those signals. For example, if one wants only BES booster extraction signals that are going to BNB, you can gate the BES with $1D TCLK events. Before configuring the MFTU, be sure to read the docementation at (MFTU Documentation). Related documenation can be found at (Presenation by the Designer) and (Fiber to TTL Converter). + +## Access to ACNET at SBND: + +`ssh sbnd-gateway03 -l sbnd` +`cd ~/acnet` +`source launche_acnet_console.sh` + ## Configuring the MFTU The MFTU configuration is performed on page E35 of an ACnet console, SBN-ND tab, pages 3 and 4. To open a console, ssh to either outland.fnal.gov or outback.fnal.gov ACnet gateway nodes and type "cnsrun". If you are off-site without a good internet connection, we recommend launching the console on a VNC session. Note that VNC sessions are not allowed on outland nor outback, you will need another VNC server host. After typing "cnsrun" in a moment several new windows will appear, like this one below. From 2cd9c81925798ad4a56ee2f6d8aecd1c87d08f7a Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Wed, 8 Oct 2025 12:34:01 -0700 Subject: [PATCH 1284/1437] Update MFTU.md --- sbn_online_wiki/ACnet/MFTU.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbn_online_wiki/ACnet/MFTU.md b/sbn_online_wiki/ACnet/MFTU.md index be93aee9e..0fc92c1df 100644 --- a/sbn_online_wiki/ACnet/MFTU.md +++ b/sbn_online_wiki/ACnet/MFTU.md @@ -11,9 +11,14 @@ The MFTU is the latest interface between the ACnet timing systems (TCLK or MIBS) ## Access to ACNET at SBND: `ssh sbnd-gateway03 -l sbnd` + `cd ~/acnet` + `source launche_acnet_console.sh` +The launch script automatically ssh to outland.fnal.gov and open up the ACNET console. +sbnd-gateway03 has the neccessary keytab to enable access. If anything changes, for example, sbnd-gateway03 is replaced with a new machine, need to contact Accelerator Divisition for an updated keytab and launch script. + ## Configuring the MFTU The MFTU configuration is performed on page E35 of an ACnet console, SBN-ND tab, pages 3 and 4. To open a console, ssh to either outland.fnal.gov or outback.fnal.gov ACnet gateway nodes and type "cnsrun". If you are off-site without a good internet connection, we recommend launching the console on a VNC session. Note that VNC sessions are not allowed on outland nor outback, you will need another VNC server host. After typing "cnsrun" in a moment several new windows will appear, like this one below. From 0ed8756cc200b816561786543931b326366ad01f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= Date: Wed, 8 Oct 2025 14:46:11 -0500 Subject: [PATCH 1285/1437] Changed $1D delays for run 2 Updated timing values for channels A9 to A12 and B9 to B12. --- sbn_online_wiki/ACnet/MFTU.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sbn_online_wiki/ACnet/MFTU.md b/sbn_online_wiki/ACnet/MFTU.md index 0fc92c1df..a5a6431b8 100644 --- a/sbn_online_wiki/ACnet/MFTU.md +++ b/sbn_online_wiki/ACnet/MFTU.md @@ -149,10 +149,10 @@ All of Channels B9 through B16 function in this manner with the possibility for | A6 | $1F | $1D | 0 | --- | | A7 | $1F | $1D | 0 | --- | | A8 | $1F | $1D | 0 | --- | -| A9 | $1D | $1D |32520us| PTB | -| A10 | $1D | $1D |32520us| --- | -| A11 | $1D | $1D |32520us| --- | -| A12 | $1D | $1D |32520us| --- | +| A9 | $1D | $1D |30700us| PTB | +| A10 | $1D | $1D |30700us| --- | +| A11 | $1D | $1D |30700us| --- | +| A12 | $1D | $1D |30700us| --- | | A13 | $1D | $1D | 0 | --- | | A14 | $1D | $1D | 0 | --- | | A15 | BES | $1D | 0 | --- | @@ -165,10 +165,10 @@ All of Channels B9 through B16 function in this manner with the possibility for | B6 | $74 | $74 | 0 | --- | | B7 | $74 | $74 | 0 | --- | | B8 | $74 | $74 | 0 | --- | -| B9 | $1D | $1D |32520us| --- | -| B10 | $1D | $1D |32520us| --- | -| B11 | $1D | $1D |32520us| --- | -| B12 | $1D | $1D |32520us| --- | +| B9 | $1D | $1D |30700us| --- | +| B10 | $1D | $1D |30700us| --- | +| B11 | $1D | $1D |30700us| --- | +| B12 | $1D | $1D |30700us| --- | | B13 | $1D | $1D | 0 | --- | | B14 | $1D | $1D | 0 | --- | | B15 | $1D | $1D | 0 | --- | From b3ad1348a49f615182b52e47e926bda1443db164 Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Wed, 8 Oct 2025 13:52:10 -0700 Subject: [PATCH 1286/1437] Update MFTU.md --- sbn_online_wiki/ACnet/MFTU.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/sbn_online_wiki/ACnet/MFTU.md b/sbn_online_wiki/ACnet/MFTU.md index a5a6431b8..e76b7e898 100644 --- a/sbn_online_wiki/ACnet/MFTU.md +++ b/sbn_online_wiki/ACnet/MFTU.md @@ -7,18 +7,6 @@ title: Multi-Function Timing Unit (MFTU) The MFTU is the latest interface between the ACnet timing systems (TCLK or MIBS) and users of their timing and control signals. The MFTU replaces the previous Internet Rack Monitor (IRM). The unit decodes the incoming TCLK (or MIBS) event stream and converts them into simple TTL digital outputs with a programmable delays and widths. The unit can also accept fast asynchronous signals and use the TCLK events to gate the fast signals in order to select a subset of those signals. For example, if one wants only BES booster extraction signals that are going to BNB, you can gate the BES with $1D TCLK events. Before configuring the MFTU, be sure to read the docementation at (MFTU Documentation). Related documenation can be found at (Presenation by the Designer) and (Fiber to TTL Converter). - -## Access to ACNET at SBND: - -`ssh sbnd-gateway03 -l sbnd` - -`cd ~/acnet` - -`source launche_acnet_console.sh` - -The launch script automatically ssh to outland.fnal.gov and open up the ACNET console. -sbnd-gateway03 has the neccessary keytab to enable access. If anything changes, for example, sbnd-gateway03 is replaced with a new machine, need to contact Accelerator Divisition for an updated keytab and launch script. - ## Configuring the MFTU The MFTU configuration is performed on page E35 of an ACnet console, SBN-ND tab, pages 3 and 4. To open a console, ssh to either outland.fnal.gov or outback.fnal.gov ACnet gateway nodes and type "cnsrun". If you are off-site without a good internet connection, we recommend launching the console on a VNC session. Note that VNC sessions are not allowed on outland nor outback, you will need another VNC server host. After typing "cnsrun" in a moment several new windows will appear, like this one below. From b5a0edfc2486a479ec7eddce07644fbf60c0236b Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:06:40 -0500 Subject: [PATCH 1287/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 241462eb5..61bdf6885 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -589,9 +589,11 @@ Data SBN Production Samples | --- | --- | --- | caf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_caf | | --- | --- | --- | flatcaf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_flatcaf | + + ### ICARUS Reconstructed DATA -------------------------- -| Sample Description | release version | # Events | File type | Samweb definition | +| **Sample Description** | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | | Run2 reprocessed BNB majority | v09_89_01_01p03 | --- | stage1 | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_stage1 | | --- | --- | --- | caf blind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_blind | From ef633eb82e95e7970e5566b60a36fdda4dfc82d6 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:14:59 -0500 Subject: [PATCH 1288/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 61bdf6885..50f73639e 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -593,7 +593,8 @@ Data SBN Production Samples ### ICARUS Reconstructed DATA -------------------------- -| **Sample Description** | release version | # Events | File type | Samweb definition | + +| **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | | --- | --- | --- | --- | --- | | Run2 reprocessed BNB majority | v09_89_01_01p03 | --- | stage1 | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_stage1 | | --- | --- | --- | caf blind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_caf_blind | From b50a59fb88ab31182293747597708c44ea1e13ca Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:18:27 -0500 Subject: [PATCH 1289/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 50f73639e..4837bfdb8 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -605,7 +605,7 @@ Data SBN Production Samples | --- | --- | --- | flatcaf prescaled | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_larcv | | --- | --- | --- | --- | --- | -|Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf blind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind +|Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf blind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_unblind| | --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_prescaled | | --- | --- | --- | flatcaf blind| Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_blind| From 39105b21a64667b1453e84f585529b81a61b460d Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:20:32 -0500 Subject: [PATCH 1290/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 4837bfdb8..002223b87 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -604,7 +604,7 @@ Data SBN Production Samples | --- | --- | --- | flatcaf unblind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_unblind | | --- | --- | --- | flatcaf prescaled | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_larcv | -| --- | --- | --- | --- | --- | + |Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf blind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_unblind| | --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_prescaled | From 1003de69fe4d7620022082b7068bc26a2ad77a25 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:21:06 -0500 Subject: [PATCH 1291/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 1 - 1 file changed, 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 002223b87..cb49080ab 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -604,7 +604,6 @@ Data SBN Production Samples | --- | --- | --- | flatcaf unblind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_unblind | | --- | --- | --- | flatcaf prescaled | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_larcv | - |Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf blind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_unblind| | --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_prescaled | From 3604be5e913d0e8286adfec16724e9c1c4dd93f8 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:25:07 -0500 Subject: [PATCH 1292/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index cb49080ab..2ec093c05 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -604,6 +604,7 @@ Data SBN Production Samples | --- | --- | --- | flatcaf unblind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_unblind | | --- | --- | --- | flatcaf prescaled | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_larcv | +
|Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf blind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_unblind| | --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_prescaled | From cca50752d9898fd0c0ffa04685580f2e7702c345 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:26:35 -0500 Subject: [PATCH 1293/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2ec093c05..6bca206ee 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -611,7 +611,7 @@ Data SBN Production Samples | --- | --- | --- | flatcaf blind| Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_blind| | --- | --- | --- | flatcaf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_unblind| | --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_prescaled | -| --- | --- | --- | --- | --- | +
| Run2 reprocessed NuMI majority | v09_89_01_02p02 | --- | stage1 | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_stage1 | | --- | --- | --- | caf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_unblind | @@ -620,7 +620,7 @@ Data SBN Production Samples | --- | --- | --- | flatcaf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_flatcaf_unblind | | --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_larcv | -| --- | --- | --- | --- | --- | +
| Run2 reprocessed OFFBeam NuMI majority | v09_89_01_02p02 | --- | stage1 | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_stage1 | | --- | --- | --- | caf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_caf_unblind | From 61bde89303adfd34f7f159f1e14836650ce3a157 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:33:30 -0500 Subject: [PATCH 1294/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 6bca206ee..3e40885c3 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -604,14 +604,12 @@ Data SBN Production Samples | --- | --- | --- | flatcaf unblind | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_unblind | | --- | --- | --- | flatcaf prescaled | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2024_Run2_production_Reproc_Run2_v09_89_01_01p03_bnbmajority_larcv | -
|Run2 reprocessed BNB majority recaf | v09_89_02_01| --- | caf blind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_unblind| | --- | --- | --- | caf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_caf_prescaled | | --- | --- | --- | flatcaf blind| Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_blind| | --- | --- | --- | flatcaf unblind | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_unblind| | --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Reproc_Run2_v09_89_02_01_bnbmajority_flatcaf_prescaled | -
| Run2 reprocessed NuMI majority | v09_89_01_02p02 | --- | stage1 | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_stage1 | | --- | --- | --- | caf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_caf_unblind | @@ -620,7 +618,6 @@ Data SBN Production Samples | --- | --- | --- | flatcaf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_flatcaf_unblind | | --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_numimajority_larcv | -
| Run2 reprocessed OFFBeam NuMI majority | v09_89_01_02p02 | --- | stage1 | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_stage1 | | --- | --- | --- | caf blind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_caf_blind | | --- | --- | --- | caf unblind | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_caf_unblind | From 20540ef4cef9b574f7a2c848213af6eff43b4756 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:53:00 -0500 Subject: [PATCH 1295/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 3e40885c3..b70388539 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -592,6 +592,11 @@ Data SBN Production Samples ### ICARUS Reconstructed DATA + +### Notes on samples ### +* These are Run2 reprocessed data with v09_89_xx_xx icaruscode used + * for BNB νμ disappearance analysis + * some of the mature NuMI cross-section analyses -------------------------- | **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | From 93f92f9011dc7a27386bd47e07ac4baf1987721d Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 10:56:13 -0500 Subject: [PATCH 1296/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index b70388539..a4f18be7b 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -589,8 +589,10 @@ Data SBN Production Samples | --- | --- | --- | caf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_caf | | --- | --- | --- | flatcaf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_flatcaf | +**ICARUS SBN Production Samples** +* These are produced with v10_xx_xx_xx using **wcdnn** fcls - + ### ICARUS Reconstructed DATA ### Notes on samples ### From 049de826cf83a9a1dc8fc7a2a345ffbef367d454 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:05:00 -0500 Subject: [PATCH 1297/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a4f18be7b..2e900ca78 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -590,7 +590,15 @@ Data SBN Production Samples | --- | --- | --- | flatcaf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_flatcaf | **ICARUS SBN Production Samples** -* These are produced with v10_xx_xx_xx using **wcdnn** fcls +* These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. + +### ICARUS SBN data production ### + +| **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | +| --- | --- | --- | --- | --- | +|ICARUS Spring, Run 2 BNB Majority Data| v10_06_00_01p05 | --- | stage0 w PMT WF |Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_stage0 | +| --- | --- | --- | stage0 w/o PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_stage0_daqPMT_drop | + ### ICARUS Reconstructed DATA From cfbfadbb202a34e974b94fcc97f342059a6ddd08 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:06:47 -0500 Subject: [PATCH 1298/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2e900ca78..698735167 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -589,7 +589,7 @@ Data SBN Production Samples | --- | --- | --- | caf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_caf | | --- | --- | --- | flatcaf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_flatcaf | -**ICARUS SBN Production Samples** + ### **ICARUS SBN Production Samples** ### * These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. ### ICARUS SBN data production ### From 29f94b87efcadb9c6b2b37aae98687023f662794 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:10:38 -0500 Subject: [PATCH 1299/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 698735167..7b1e1c796 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -596,8 +596,23 @@ Data SBN Production Samples | **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | | --- | --- | --- | --- | --- | -|ICARUS Spring, Run 2 BNB Majority Data| v10_06_00_01p05 | --- | stage0 w PMT WF |Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_stage0 | +|ICARUS Spring, Run 2 BNB Majority Data w/o calib| v10_06_00_01p05 | --- | stage0 w PMT WF |Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_stage0 | | --- | --- | --- | stage0 w/o PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_stage0_daqPMT_drop | +| --- | --- | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_calibtuples | +| --- | --- | --- | caf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_caf_prescaled | +| --- | --- | --- | caf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_caf_blind | +| --- | --- | --- | caf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_caf_unblind | +| --- | --- | --- | flatcaf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_prescaled | +| --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_blind | +| --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_unblind | +| --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_larcv | + + + + + + + From 81fb861d4111816102d89630a6ba051ed7b42f92 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:21:07 -0500 Subject: [PATCH 1300/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 7b1e1c796..3d1227bcb 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -589,6 +589,7 @@ Data SBN Production Samples | --- | --- | --- | caf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_caf | | --- | --- | --- | flatcaf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_flatcaf | + ### **ICARUS SBN Production Samples** ### * These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. @@ -607,6 +608,16 @@ Data SBN Production Samples | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_larcv | +| ICARUS Spring, Run 2 Off-Beam BNB Majority Data | v10_06_00_01p05 | --- | stage0 w PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0 | +| --- | --- | --- | stage0 w/o PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0_daqPMT_drop | +| --- | --- | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_calibtuples | +| --- | --- | --- | caf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_caf_prescaled | +| --- | --- | --- | caf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_caf_blind | +| --- | --- | --- | caf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_caf_unblind | +| --- | --- | --- | flatcaf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_flatcaf_prescaled | +| --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_flatcaf_blind | +| --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_flatcaf_unblind | +| --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_larcv | From 46a6ca6cf804e294ecaa68d6d532c8f86fb1fdc0 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:26:25 -0500 Subject: [PATCH 1301/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 3d1227bcb..4aeed4e08 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -589,8 +589,8 @@ Data SBN Production Samples | --- | --- | --- | caf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_caf | | --- | --- | --- | flatcaf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_flatcaf | - - ### **ICARUS SBN Production Samples** ### +ICARUS SBN Production Samples +--------------------------- * These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. ### ICARUS SBN data production ### @@ -626,8 +626,9 @@ Data SBN Production Samples - -### ICARUS Reconstructed DATA + ICARUS DATA + --------------------- +### ICARUS Reconstructed DATA (Run2) ### Notes on samples ### * These are Run2 reprocessed data with v09_89_xx_xx icaruscode used From ee5d1c2c72975326de0baf77fa23c8783ddbc8ef Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:29:55 -0500 Subject: [PATCH 1302/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 4aeed4e08..a27d728cb 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -593,7 +593,8 @@ ICARUS SBN Production Samples --------------------------- * These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. -### ICARUS SBN data production ### +### ICARUS SBN data production +----------------------------- | **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | | --- | --- | --- | --- | --- | @@ -629,12 +630,10 @@ ICARUS SBN Production Samples ICARUS DATA --------------------- ### ICARUS Reconstructed DATA (Run2) +----------------------------------- ### Notes on samples ### -* These are Run2 reprocessed data with v09_89_xx_xx icaruscode used - * for BNB νμ disappearance analysis - * some of the mature NuMI cross-section analyses --------------------------- +* These are Run2 reprocessed data with v09_89_xx_xx icaruscode used for BNB νμ disappearance analysis and some of the mature NuMI cross-section analyses | **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | | --- | --- | --- | --- | --- | From 667a749d5c1781f7af77318a64033754e7e97eff Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:45:17 -0500 Subject: [PATCH 1303/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a27d728cb..6a22aa7ce 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -620,6 +620,26 @@ ICARUS SBN Production Samples | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_larcv | +|ICARUS Spring, Run 2 BNB Majority w Calibrated CAFs | v10_06_00_04p03 | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_calibtuples | +| --- | --- | --- | caf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_caf_prescaled | +| --- | --- | --- | caf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_caf_blind | +| --- | --- | --- | caf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_caf_unblind | +| --- | --- | --- | flatcaf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_flatcaf_prescaled | +| --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_flatcaf_blind | +| --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_flatcaf_unblind | +| --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_larcv | + + +### ICARUS SBN MC Overlay production +----------------------------------- + +| **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | +| --- | --- | --- | --- | --- | + + + + + From 89e974807474d853b1307249d512709f61ccb942 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:48:54 -0500 Subject: [PATCH 1304/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 631edd7f0..c49eca71a 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_10_03_03`. | Major release | [Release Notes](ReleaseNotes10100303.md) |`v10_10_03_02`. | Major release | [Release Notes](ReleaseNotes10100302.md) |`v10_10_03_01`. | Major release | [Release Notes](ReleaseNotes10100301.md) |`v10_10_03`. | Major release | [Release Notes](ReleaseNotes101003.md) From a9d4d0971a78892f67fda7416dcafea43bfcc618 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 13 Oct 2025 11:51:48 -0500 Subject: [PATCH 1305/1437] Create ReleaseNotes10100303.md --- .../Releases/ReleaseNotes10100303.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10100303.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10100303.md b/sbndcode_wiki/Releases/ReleaseNotes10100303.md new file mode 100644 index 000000000..4ae57fa16 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10100303.md @@ -0,0 +1,136 @@ +-- +layout: page +title: ReleaseNotes10100303 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.10.03.03 | 13 Oct 2025 | [ReleaseNotes](ReleaseNotes10100303.html) | +| --- | --- | --- | + + + +sbndcode v10_10_03_03 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_10_03_03](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_10_03_03/sbndcode-v10_10_03_03.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_10_03_02 to v10_10_03_03 +- PR #816: Add PTBEventDisplay.py for PTB data visualization + - **Description**: Frugal PR, no harm to the software stack. It adds a python macro to make PTB plots as the one below. It uses as input TTrees generated by PTBAna. ![EventDisplay_Run_18271_Subrun_1_Event_318296](https://github.com/user-attachments/assets/79c03db0-858c-48a5-9ca7-b1613fa17340) + - **Labels**: trigger + - **Reviewers**: maxdubnowski + - **Assignees**: fjnicolas +- PR #838: initialize gate counter for both LLT & HLT with no metadata + - **Description**: Quick PR to initialize some values written by the PTB decoder to default values. Without initialization, the LLT gate_counter value written by the decoder will give different results for the same input file each time it is run, making it more difficult to validate production workflows. + - **Labels**: bug + - **Reviewers**: + - **Assignees**: tbwester +- PR #837: Update diffusion fcls to be consistent with detvar workflows + - **Description**: Quick fix to the diffusion detector variation fcls: Update to add a unique product label as used in the other detector variation fcls. This also fixes a bug with the "no_diffusion" variation, where workflows with scrub stage as input will fail with a message like "The process name DetSim was previously used on these products." + - **Labels**: bug, detsim + - **Reviewers**: mrmooney + - **Assignees**: tbwester +- PR #836: Migrate CRTGeoAlg to a service + - **Description**: This PR does what it says on the tin. It migrates the `CRTGeoAlg` into an art service. This alg hosts a series of functions that act as intermediaries between the GDML and the Sim/Reco algs. They perform common functions and store information from the calibration service for easy access. The alg implementation is sub-optimal as it a separate instance is initialised for every use case in some job fcls this can mean 4 or 5 separate instances (each producer or analyzer that utilises it). Its been on my list to migrate it for a while but I've never had the motivation / time. The motivation now is the implementation of the CRT calibration database interface will be made much easier by this alg being a service because we can override standard art service functions like 'preBeginRun'. Note, this PR is purely the pre-step, the calibration database will come in a separate PR. Given the scope of this I wanted to functionalise the approach. This PR should be totally transparent. I have performed a variety of tests (including the inbuilt unit tests) and performed a series of `egrep`s to ensure I have covered all references to the alg. The full regression suite should help confirm I haven't missed anything. I have left a few legacy fcls without updating. Requesting the RMs to review given this is purely architecture based, let me know if that is not appropriate. + - **Labels**: maintenance + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #832: Fix pfp ordering when using SCE products + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: bug + - **Reviewers**: + - **Assignees**: asanchezcastillo +- PR #830: Feature/trigger work nikki pr + - **Description**: This includes updates to trigger code to include trigger emulation. Specifically this includes a new LArService that is called in both data and Monte Carlo analysis modules. The LArService include two functions originally from the data analyzer module (ConstructMonPulse and ConstructBinary response) and puts them in this general step that can be applied to both data and Monte Carlo. The functions have also been modified to work with data and Monte Carlo separately where needed. The data analyzer module now simply calls this LArService and the output matches the previous version. The Monte Carlo analyzer module calls this LArService too and now has an interface (in the analyzer module) that slices up the waveforms based on the triggers and consistent with the shorter 10us format of the data waveforms. These new triggered waveforms, the old triggered waveforms, a boolean of if the event passed/failed the trigger, and information to reconstruct the result of ConstructMonPulse (for the purposes of debugging during validation). + - **Labels**: detsim, trigger + - **Reviewers**: marcodeltutto, linyan-w + - **Assignees**: npallat +- PR #822: Removing XA related ophit and downstream reco for sbndcode issue #821 + - **Description**: (Temporary) removal of XA related ophit and downstream reco for run1 nominal workflow. Related to[ issue 821](https://github.com/SBNSoftware/sbndcode/issues/821) + - **Labels**: pds + - **Reviewers**: + - **Assignees**: linyan-w +- PR #815: Feature/aantonak corsika showerarea + - **Description**: Please provide a detailed description of the changes this pull request introduces. This PR changes the ShowerAreaExtension fcl parameter used in Corsika from 10 to 20 meters for two different simulation fcls: prodcorsika_proton_intime_sbnd.fcl and prodgenie_corsika_proton_rockbox_sbnd.fcl + - **Labels**: simulation + - **Reviewers**: + - **Assignees**: aantonakis +- PR #841: Updates to CMakeLists + - **Description**: Small update to CMakeLists: Nate reported that the GeoWrappers included in CMakeLists was giving build issues. I removed this (and a couple already commented out lines for housekeeping) and verified my MC and data analysis modules still build, run, and give expected results. + - **Labels**: trigger + - **Reviewers**: + - **Assignees**: npallat + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-10-13 Nathaniel : Merge branch 'release/v10_10_03_03' +* 2025-10-13 Nathaniel : Now builds +* 2025-10-06 nathanielerowe : Merge pull request #841 from SBNSoftware/feature/Trigger_Small_Updates_Nikki +* 2025-10-06 Nikki Pallat : Updates to CMakeLists +* 2025-10-06 nathanielerowe : Merge pull request #815 from SBNSoftware/feature/aantonak_corsika_showerarea +* 2025-10-06 nathanielerowe : Merge branch 'develop' into feature/aantonak_corsika_showerarea +* 2025-10-06 nathanielerowe : Merge pull request #822 from SBNSoftware/bugfix_remove_xaophit +* 2025-10-06 nathanielerowe : Merge branch 'develop' into bugfix_remove_xaophit +* 2025-10-06 nathanielerowe : Merge pull request #830 from SBNSoftware/feature/TriggerWorkNikki-PR +* 2025-10-06 nathanielerowe : Merge branch 'develop' into feature/TriggerWorkNikki-PR +* 2025-10-06 nathanielerowe : Merge pull request #832 from SBNSoftware/bugfix/acastill_fixlightpropSCE +* 2025-10-06 nathanielerowe : Merge branch 'develop' into bugfix/acastill_fixlightpropSCE +* 2025-10-06 nathanielerowe : Merge pull request #836 from SBNSoftware/feature/hlay_crt_geo_alg_service +* 2025-10-06 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_geo_alg_service +* 2025-10-06 nathanielerowe : Merge pull request #837 from SBNSoftware/bugfix/twester_diffusion_fcls +* 2025-10-06 nathanielerowe : Merge branch 'develop' into bugfix/twester_diffusion_fcls +* 2025-10-06 nathanielerowe : Merge pull request #838 from SBNSoftware/bugfix/twester_ptb_initialization +* 2025-10-06 nathanielerowe : Merge branch 'develop' into bugfix/twester_ptb_initialization +* 2025-10-06 nathanielerowe : Merge pull request #816 from SBNSoftware/feature/fnicolas_ptbeventdisplay +* 2025-10-06 nathanielerowe : Merge branch 'develop' into feature/fnicolas_ptbeventdisplay +* 2025-10-03 nathanielerowe : Merge branch 'develop' into bugfix_remove_xaophit +* 2025-10-03 Nikki Pallat : Bug fix: for incorrectly nested services fcl and updates to default fcl parameters +* 2025-10-03 Alejandro Sánchez Castillo : Comment out fm for XArapucas +* 2025-10-01 Thomas Wester : initialize gate counter for both llt & hlt +* 2025-10-01 Thomas Wester : update diffusion fcls to be consistent with detvar workflows +* 2025-10-01 Henry Lay : ...and more +* 2025-10-01 Henry Lay : More fcls caught in testing +* 2025-10-01 Henry Lay : CMake changes +* 2025-10-01 Henry Lay : Some lingering fcl references +* 2025-09-30 Henry Lay : Refactor usage of CRTGeoService + improve CMakeLists +* 2025-09-30 Henry Lay : Typo +* 2025-09-30 Henry Lay : Merge tag 'v10_10_03_02' into feature/hlay_crt_geo_alg_service +* 2025-09-29 Henry Lay : Will I ever get back to this? Probably not\! +* 2025-09-26 Alejandro Sánchez Castillo : Fix pfp ordering when using SCE products +* 2025-09-24 Nathaniel : Merge tag 'v10_10_03_02' into develop +* 2025-09-24 Nikki Pallat : verified the decoders can still run over raw data with the new changes +* 2025-09-24 Nikki Pallat : Corrections based on Jacob's comments on my PR, including default value changes, numPairsOverThreshold calculation, and saving MonPulse in the PMTDecoder +* 2025-09-22 Nikki Pallat : Updates to information saved in the event +* 2025-09-22 Nikki Pallat : Another update to CMakeLists +* 2025-09-22 Nikki Pallat : Update to CMakeLists +* 2025-09-22 Nikki Pallat : Apply TriggerWorkNikki changes on top of develop +* 2025-09-18 Linyan Wan : Temporarily resuming xa simulation +* 2025-09-17 Linyan Wan : Removal -> comments + comment out xa digitization +* 2025-09-17 Linyan Wan : Removing xa decoder +* 2025-09-16 Linyan Wan : Removing XA related ophit and downstream reco for sbndcode issue #821 +* 2025-09-11 Alexander Antonakis : Changed the ShowerAreaExtension to 20 meters globally by modifying sbndcode/LArSoftConfigurations/gen/corsika_sbnd.fcl +* 2025-09-11 Francisco Javier Nicolás-Arnaldos : Add PTBEventDisplay.py for PTB data visualization +* 2025-09-07 Alexander Antonakis : modified prodgenie_corsika_proton_rockbox_sbnd.fcl to have the 20 m ShowerAreaExtension +* 2025-09-05 Alexander Antonakis : Changed the Corsika ShowerAreaExtension from 10 to 20 meters +* 2025-08-22 Henry Lay : Use data CRT geo alg in CRTAna From 4fd372e1c6219e2c95c5180c627b073cb2fd1829 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 12:51:26 -0500 Subject: [PATCH 1306/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 6a22aa7ce..8c6f8de9b 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -635,6 +635,11 @@ ICARUS SBN Production Samples | **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | | --- | --- | --- | --- | --- | +| ICARUS Spring 2025A BNB Run 2 Overlay w offbeamminbias data | v10_06_00_04p04 | --- | stage0 | production_mc_2025A_ICARUS_Overlays_BNB_MC_RUN2_September_v10_06_00_04p04_stage0 | +| --- | --- | --- | calibtuples | production_mc_2025A_ICARUS_Overlays_BNB_MC_RUN2_summer_2025_v10_06_00_04p04_calibtuples | +| --- | --- | --- | caf | production_mc_2025A_ICARUS_Overlays_BNB_MC_RUN2_summer_2025_v10_06_00_04p04_caf | +| --- | --- | --- | flatcaf | production_mc_2025A_ICARUS_Overlays_BNB_MC_RUN2_summer_2025_v10_06_00_04p04_flatcaf | +| --- | --- | --- | larcv | production_mc_2025A_ICARUS_Overlays_BNB_MC_RUN2_summer_2025_v10_06_00_04p04_larcv | From 98ffd024b8d4386249965d7d1eb858ef20c47ec3 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 12:54:48 -0500 Subject: [PATCH 1307/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 8c6f8de9b..7b2e93a83 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -652,8 +652,8 @@ ICARUS SBN Production Samples - ICARUS DATA - --------------------- +ICARUS DATA +--------------------- ### ICARUS Reconstructed DATA (Run2) ----------------------------------- @@ -733,7 +733,7 @@ ICARUS SBN Production Samples | BNB stream | Run 1 reprocessing | v09_37_02_01 | 627484 | stage0 | IcarusProd_Run1_reprocess_BNBstream_stage0 | | --- | --- | --- | 627484 | stage1 | IcarusProd_Run1_reprocess_BNBstream_stage1 | -### ICARUS Compressed RAW DATA +### ICARUS Compressed RAW DATA (Run2) -------------------------- | Run | datastream | SAM dataset | Raw Files not in the compressed datasets | From 5482f5bd5d0a18a3791502b1328ca8712e0e8032 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 12:56:25 -0500 Subject: [PATCH 1308/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 7b2e93a83..e9943e2bb 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -657,7 +657,7 @@ ICARUS DATA ### ICARUS Reconstructed DATA (Run2) ----------------------------------- -### Notes on samples ### +** Notes on samples: ** * These are Run2 reprocessed data with v09_89_xx_xx icaruscode used for BNB νμ disappearance analysis and some of the mature NuMI cross-section analyses | **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | @@ -693,7 +693,7 @@ ICARUS DATA | --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_larcv | -### Notes on samples ### +** Notes on samples: ** * Run 1 reprocessing is the reprocessing of selected runs based on the good run list created by Gray and Minerba. Please refer to this docdb for the list of runs: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=25407&filename=ICARUS%20Data%20Re-Processing.pdf&version=1 * Run 1 batch 2 is the processing of run_number > 7621 and run_number < 8460 (before the update to the new DAQ configuration) * Run 1 batch 3 is the processing of run_number >= 8460 and run_number < 8598 (after the update to the new DAQ configuration resulting in 8 new data stream: (offbeam) BNB/NuMI Majority/MinBias) From af270fa5ed0aa326ec36d0ce08b5763d773c5cd4 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 13:10:02 -0500 Subject: [PATCH 1309/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index e9943e2bb..8f1a4bc84 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -591,7 +591,7 @@ Data SBN Production Samples ICARUS SBN Production Samples --------------------------- -* These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. +**Notes:** These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. ### ICARUS SBN data production ----------------------------- @@ -608,7 +608,7 @@ ICARUS SBN Production Samples | --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_blind | | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_larcv | - +| --- | --- | --- | --- | --- | | ICARUS Spring, Run 2 Off-Beam BNB Majority Data | v10_06_00_01p05 | --- | stage0 w PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0 | | --- | --- | --- | stage0 w/o PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0_daqPMT_drop | | --- | --- | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_calibtuples | @@ -644,20 +644,12 @@ ICARUS SBN Production Samples - - - - - - - - ICARUS DATA --------------------- ### ICARUS Reconstructed DATA (Run2) ----------------------------------- -** Notes on samples: ** +**Notes on samples:** * These are Run2 reprocessed data with v09_89_xx_xx icaruscode used for BNB νμ disappearance analysis and some of the mature NuMI cross-section analyses | **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | From 109fe50a0205b3d04e18c106e8ff40d2d06f338d Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 13:17:06 -0500 Subject: [PATCH 1310/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 8f1a4bc84..1202c1a7a 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -608,7 +608,7 @@ ICARUS SBN Production Samples | --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_blind | | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_larcv | -| --- | --- | --- | --- | --- | +
| ICARUS Spring, Run 2 Off-Beam BNB Majority Data | v10_06_00_01p05 | --- | stage0 w PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0 | | --- | --- | --- | stage0 w/o PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0_daqPMT_drop | | --- | --- | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_calibtuples | From 36ef97278108e2693eec6eb0004d108b6955f76d Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 13:26:11 -0500 Subject: [PATCH 1311/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 1202c1a7a..a54eee6e8 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -591,7 +591,7 @@ Data SBN Production Samples ICARUS SBN Production Samples --------------------------- -**Notes:** These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. +**Notes on samples:** These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. ### ICARUS SBN data production ----------------------------- @@ -608,7 +608,7 @@ ICARUS SBN Production Samples | --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_blind | | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_larcv | -
+ | ICARUS Spring, Run 2 Off-Beam BNB Majority Data | v10_06_00_01p05 | --- | stage0 w PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0 | | --- | --- | --- | stage0 w/o PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0_daqPMT_drop | | --- | --- | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_calibtuples | @@ -632,6 +632,9 @@ ICARUS SBN Production Samples ### ICARUS SBN MC Overlay production ----------------------------------- +**Notes on samples:** +* These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. +* As of Oct 13th 2025, these productions are ongoing. You might notice increasing number of files in the output datasets. | **Sample Description**| **release version** | **# Events** | **File type** | **Samweb definition** | | --- | --- | --- | --- | --- | @@ -685,7 +688,10 @@ ICARUS DATA | --- | --- | --- | flatcaf prescaled | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_flatcaf_prescaled | | --- | --- | --- | larcv | Icaruspro_2025_Run2_production_Run2reprocess_v09_89_01_02p02_offbeamnumimajority_larcv | -** Notes on samples: ** + +### ICARUS Reconstructed DATA (Run1) +----------------------------------- +**Notes on samples:** * Run 1 reprocessing is the reprocessing of selected runs based on the good run list created by Gray and Minerba. Please refer to this docdb for the list of runs: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=25407&filename=ICARUS%20Data%20Re-Processing.pdf&version=1 * Run 1 batch 2 is the processing of run_number > 7621 and run_number < 8460 (before the update to the new DAQ configuration) * Run 1 batch 3 is the processing of run_number >= 8460 and run_number < 8598 (after the update to the new DAQ configuration resulting in 8 new data stream: (offbeam) BNB/NuMI Majority/MinBias) From 4f04acea9e305961408e93ba8ca3481a52b55522 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 13:35:59 -0500 Subject: [PATCH 1312/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a54eee6e8..a82db657e 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -608,7 +608,6 @@ ICARUS SBN Production Samples | --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_blind | | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_larcv | - | ICARUS Spring, Run 2 Off-Beam BNB Majority Data | v10_06_00_01p05 | --- | stage0 w PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0 | | --- | --- | --- | stage0 w/o PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0_daqPMT_drop | | --- | --- | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_calibtuples | @@ -619,7 +618,6 @@ ICARUS SBN Production Samples | --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_flatcaf_blind | | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_larcv | - |ICARUS Spring, Run 2 BNB Majority w Calibrated CAFs | v10_06_00_04p03 | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_calibtuples | | --- | --- | --- | caf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_caf_prescaled | | --- | --- | --- | caf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_caf_blind | From e34ed07783d51e50bbae27fd46e7d56715fde379 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 13:59:25 -0500 Subject: [PATCH 1313/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a82db657e..b1d5c3844 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -188,7 +188,6 @@ Monte Carlo official SBN Production Samples ### ICARUS MC -------------------------- -icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_ | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | @@ -197,84 +196,85 @@ icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_ | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_flatcaf | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_larcv | -| --- | --- | --- | --- | --- | --- | -| BNB neutrino + cosmics (Respun) | MC2024A | v09_89_01_02p01 | 200k | stage1 | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_stage1 | +| BNB neutrino + cosmics (Respun CV) | MC2024A | v09_89_01_02p01 | 200k | stage1 | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_calibtuple | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_flatcaf | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_larcv | -| --- | --- | --- | --- | --- | --- | -| BNB neutrino + cosmics | MC2024A | v09_89_01_01 | 200k | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_calibtuple| +| BNB neutrino + cosmics (CV) | MC2024A | v09_89_01_01 | 200k | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_calibtuple| | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_caf| | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_flatcaf| | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_CV_2ndV_larcv| -| --- | --- | --- | --- | --- | --- | +| BNB neutrino + cosmics det var - Ind1 gain low | MC2024A | v09_89_01_01p03 | 200k | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_GainVar_2ndV_calibtuple | +| --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_GainVar_2ndV_caf | +| --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_GainVar_2ndV_flatcaf | +| --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_GainVar_2ndV_larcv | | BNB nu only sample (CV) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_MC_CV_Sys_flatcaf | -| BNB nu only sample - null variation (VAR0) | MC2024A | v09_89_01_01 | 203320 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_stage1 | +| BNB nu only det var - null variation (VAR0) | MC2024A | v09_89_01_01 | 203320 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR0_null_flatcaf | -| BNB nu only sample - TPC Signal shape variation (VAR1) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_stage1 | +| BNB nu only det var - TPC Signal shape variation (VAR1) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR1_untunedtpcsigshape_flatcaf | -| BNB nu only sample - Middle Induction Minimal Transparency (VAR2) | MC2024A | v09_89_01_01 | 207729 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_stage1 | +| BNB nu only det var - Middle Induction Minimal Transparency (VAR2) | MC2024A | v09_89_01_01 | 207729 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR2_tpcind2opaque_flatcaf | -| BNB nu only sample - Middle Induction Minimal Transparency (VAR3) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_stage1 | +| BNB nu only det var - Middle Induction Minimal Transparency (VAR3) | MC2024A | v09_89_01_01 | 203316 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR3_tpcind2transparent_flatcaf | -| BNB nu only sample - Front Induction Increased Gain Variation (VAR4) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_stage1 | +| BNB nu only det var - Front Induction Increased Gain Variation (VAR4) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR4_tpcind1increasegain_flatcaf | -| BNB nu only sample - Front Induction Decreased Gain Variation (VAR5) | MC2024A | v09_89_01_01 | 203148 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_stage1 | +| BNB nu only det var - Front Induction Decreased Gain Variation (VAR5) | MC2024A | v09_89_01_01 | 203148 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR5_tpcind1decreasegain_flatcaf | -| BNB nu only sample - PMT Quantum Efficiency Variation (VAR6) | MC2024A | v09_89_01_01 | 203284 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_stage1 | +| BNB nu only det var - PMT Quantum Efficiency Variation (VAR6) | MC2024A | v09_89_01_01 | 203284 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR6_pmtdecreasedqe_flatcaf | -| BNB nu only sample - Recombination Model Variation (VAR7) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_stage1 | +| BNB nu only det var - Recombination Model Variation (VAR7) | MC2024A | v09_89_01_01 | 203323 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR7_ellipsoidalrecomb_flatcaf | -| BNB nu only sample - TPC Coherent Noise Increase Variation (VAR8) | MC2024A | v09_89_01_01 | 202614 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_stage1 | +| BNB nu only det var - TPC Coherent Noise Increase Variation (VAR8) | MC2024A | v09_89_01_01 | 202614 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR8_tpccohnoisep1sigma_flatcaf | -| BNB nu only sample - TPC Coherent Noise Decrease Variation (VAR9) | MC2024A | v09_89_01_01 | 202733 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_stage1 | +| BNB nu only det var - TPC Coherent Noise Decrease Variation (VAR9) | MC2024A | v09_89_01_01 | 202733 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR9_tpccohnoisem1sigma_flatcaf | -| BNB nu only sample - TPC Intrinsic Noise Increase Variation (VAR10) | MC2024A | v09_89_01_01 | 202887 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_stage1 | +| BNB nu only det var - TPC Intrinsic Noise Increase Variation (VAR10) | MC2024A | v09_89_01_01 | 202887 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR10_tpcintnoisep1sigma_flatcaf | -| BNB nu only sample - TPC Intrinsic Noise Decrease Variation (VAR11) | MC2024A | v09_89_01_01 | 202568 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_stage1 | +| BNB nu only det var - TPC Intrinsic Noise Decrease Variation (VAR11) | MC2024A | v09_89_01_01 | 202568 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR11_tpcintnoisem1sigma_flatcaf | -| BNB nu only sample - New Light Variation (VAR12) | MC2024A | v09_89_01_01 | 203282 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_stage1 | +| BNB nu only det var - New Light Variation (VAR12) | MC2024A | v09_89_01_01 | 203282 | stage1/reco2 | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_calibtuple | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_larcv | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_01_2024A_ICARUS_MC_CV_Sys_2024A_Sys_VAR12_pmtdecreasedqe2_caf | From 75376c3722bf387579d4ed112b2a7d9d048e9fd3 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 13 Oct 2025 15:05:05 -0500 Subject: [PATCH 1314/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index b1d5c3844..6497aa344 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -774,6 +774,20 @@ _2024 November_: A sample of central value SBND MC events were generated on Pola | --- | --- | --- | --- | --- | | BNB + Cosmics CV | v09_93_01 | 274387 | flatcaf | polaris_v09_93_01_prodoverlay_corsika_cosmics_proton_genie_rockbox_sbnd_caf_flat_caf_sbnd | + +### ICARUS RUN4 DATA +----------------------------- + +| Sample Description | release version | # Events | File type | Samweb definition | +| ICARUS Spring Run 4 BNB Majority Data | v10_06_00_01p05 | --- | stage0 | Icaruspro_2025_wcdnn_production_Run4_SBN_v10_06_00_01p05_fstrmBNBMAJORITY_stage0 | +| --- | --- | --- | calib_ntuples | Icaruspro_2025_wcdnn_production_Run4_SBN_v10_06_00_01p05_fstrmBNBMAJORITY_calib_ntuples | +| ICARUS Spring Run 4 BNB OffbeamMajority Data | v10_06_00_01p05 | --- | stage0 | Icaruspro_2025_wcdnn_production_Run4_SBN_v10_06_00_01p05_fstrmOffBeamBNBMAJORITY_stage0 | +| --- | --- | --- | calib_ntuples | Icaruspro_2025_wcdnn_production_Run4_SBN_v10_06_00_01p05_fstrmOffBeamBNBMAJORITY_calib_ntuples | + + + + + SBND Production Progress Report --------------------------
From ec9883afef6b468cee38c75baf2fd5e5dd5fa6a2 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:24:17 -0500 Subject: [PATCH 1315/1437] Add release v10_11_01 to release list --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index c49eca71a..96f1fbae6 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_11_01`. | Major release | [Release Notes](ReleaseNotes101101.md) |`v10_10_03_03`. | Major release | [Release Notes](ReleaseNotes10100303.md) |`v10_10_03_02`. | Major release | [Release Notes](ReleaseNotes10100302.md) |`v10_10_03_01`. | Major release | [Release Notes](ReleaseNotes10100301.md) From d71d02b1d32c631bf9846712fb02efa04924f9e0 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 20 Oct 2025 12:26:58 -0500 Subject: [PATCH 1316/1437] Create ReleaseNotes101101.md for v10.11.01 Added release notes for sbndcode version 10.11.01. --- sbndcode_wiki/Releases/ReleaseNotes101101.md | 37 ++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes101101.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes101101.md b/sbndcode_wiki/Releases/ReleaseNotes101101.md new file mode 100644 index 000000000..1b9b14260 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes101101.md @@ -0,0 +1,37 @@ +--- +layout: page +title: ReleaseNotes101101 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.11.01 | 20 Oct 2025 | [ReleaseNotes](ReleaseNotes101101.html) | +| --- | --- | --- | + + + +sbndcode v10_11_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_11_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_11_01/sbndcode-v10_11_01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +Just sbncode version bump! From 6b455f17290452c35330e7374e6105791ec8ac9c Mon Sep 17 00:00:00 2001 From: linyan-w <53352772+linyan-w@users.noreply.github.com> Date: Tue, 21 Oct 2025 09:50:46 -0500 Subject: [PATCH 1317/1437] Update sbnd_calibration_database.md for rendering --- sbnd_calibration_database.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 1c2a21c77..47816b02a 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -1,3 +1,10 @@ +--- +layout: page +title: SBND Calibration Database +description: SBND Calibration Database Instruction +toc: true +--- + # SBND Calibration Database Author: Marina Reggiani-Guzzo, PDRA at University of Edinburgh, mguzzo@ed.ac.uk From fb499f97f39c1832210b79da4f489c5266b2ee3c Mon Sep 17 00:00:00 2001 From: linyan-w <53352772+linyan-w@users.noreply.github.com> Date: Tue, 21 Oct 2025 09:53:20 -0500 Subject: [PATCH 1318/1437] Update index.md to link SBND calibration DB --- index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/index.md b/index.md index 33cc2dec9..dc198e6ec 100644 --- a/index.md +++ b/index.md @@ -31,6 +31,7 @@ If you're looking for a tutorial on one of the many aspects of SBN physics, coll ## [Analysis Infrastructure](AnalysisInfrastructure/index) ## New to the SBN Github? Go to the [Github migration to do list](AnalysisInfrastructure/github-migration-to-do-list.md)** ### [How to Add New Features, Fix Bugs, Or Otherwise Develop](AnalysisInfrastructure/how-to-develop) ### +* [SBND Calibration Database](sbnd_calibration_database.md) ## List of Repositories ## From f970520792717c0aeaaa2fd329fba7da066cd321 Mon Sep 17 00:00:00 2001 From: sungbinoh Date: Tue, 21 Oct 2025 12:41:29 -0500 Subject: [PATCH 1319/1437] adding a new folder in sbnd calidb for sbnd etau --- sbnd_calibration_database.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 47816b02a..6a97a1656 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -59,6 +59,26 @@ This section displays a list of the variables in the database, as well as their \* More information on DocDB 35489 (slide 13). + +### tpc_elifetime_data +- Folder description: This folder contains electron lifetime data +- Channel number: No meaning +- Number of rows: 1 for each merged run index +- Suggested table structure + +| Variable Name | Type | Description | Unit | +| ------------- | ---- | ----------- | ---- | +| run | integer | run number | N/A | +| merged_run_idx | integer | index for merge runs | N/A | +| first_run_of_merged | integer | first run of the merged runs | N/A | +| last_run_of_merged | integer | last run of the merged runs | N/A | +| etau_sce_spatial_east | real | East TPC electron lifetime after sptial SCE correction | ms | +| etau_sce_spatial_east_p_1sig | real | plus one sigma error of East TPC electron lifetime after sptial SCE correction | ms | +| etau_sce_spatial_east_m_1sig | real | mimus one sigma error of East TPC electron lifetime after sptial SCE correction | ms | +| etau_sce_spatial_west | real | West TPC electron lifetime after sptial SCE correction | ms | +| etau_sce_spatial_west_p_1sig | real | plus one sigma error of West TPC electron lifetime after sptial SCE correction | ms | +| etau_sce_spatial_west_m_1sig | real | minus one sigma error of West TPC electron lifetime after sptial SCE correction | ms | + ### tpc_globalconstants - Folder description: This folder contains non-channel specific information - Channel number: No meaning From 91838681d698e96ac819f22e31afca178cdbd3d8 Mon Sep 17 00:00:00 2001 From: sungbinoh Date: Tue, 21 Oct 2025 12:43:16 -0500 Subject: [PATCH 1320/1437] minor type fix --- sbnd_calibration_database.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 6a97a1656..80936cc9b 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -72,12 +72,12 @@ This section displays a list of the variables in the database, as well as their | merged_run_idx | integer | index for merge runs | N/A | | first_run_of_merged | integer | first run of the merged runs | N/A | | last_run_of_merged | integer | last run of the merged runs | N/A | -| etau_sce_spatial_east | real | East TPC electron lifetime after sptial SCE correction | ms | -| etau_sce_spatial_east_p_1sig | real | plus one sigma error of East TPC electron lifetime after sptial SCE correction | ms | -| etau_sce_spatial_east_m_1sig | real | mimus one sigma error of East TPC electron lifetime after sptial SCE correction | ms | -| etau_sce_spatial_west | real | West TPC electron lifetime after sptial SCE correction | ms | -| etau_sce_spatial_west_p_1sig | real | plus one sigma error of West TPC electron lifetime after sptial SCE correction | ms | -| etau_sce_spatial_west_m_1sig | real | minus one sigma error of West TPC electron lifetime after sptial SCE correction | ms | +| etau_sce_spatial_east | real | East TPC electron lifetime after spatial SCE correction | ms | +| etau_sce_spatial_east_p_1sig | real | plus one sigma error of East TPC electron lifetime after spatial SCE correction | ms | +| etau_sce_spatial_east_m_1sig | real | mimus one sigma error of East TPC electron lifetime after spatial SCE correction | ms | +| etau_sce_spatial_west | real | West TPC electron lifetime after spatial SCE correction | ms | +| etau_sce_spatial_west_p_1sig | real | plus one sigma error of West TPC electron lifetime after spatial SCE correction | ms | +| etau_sce_spatial_west_m_1sig | real | minus one sigma error of West TPC electron lifetime after spatial SCE correction | ms | ### tpc_globalconstants - Folder description: This folder contains non-channel specific information From e4750079494e713e948b8eae0864007d9ff587ae Mon Sep 17 00:00:00 2001 From: sungbinoh Date: Tue, 21 Oct 2025 12:49:19 -0500 Subject: [PATCH 1321/1437] minor text fix --- sbnd_calibration_database.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 80936cc9b..2de198447 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -63,7 +63,7 @@ This section displays a list of the variables in the database, as well as their ### tpc_elifetime_data - Folder description: This folder contains electron lifetime data - Channel number: No meaning -- Number of rows: 1 for each merged run index +- Number of rows: 1 for each run - Suggested table structure | Variable Name | Type | Description | Unit | From d5c1510ef83eb5709c90a7c48d9edd38df411116 Mon Sep 17 00:00:00 2001 From: sungbinoh Date: Tue, 21 Oct 2025 13:16:28 -0500 Subject: [PATCH 1322/1437] removing run column from sbnd calib DB's etau table --- sbnd_calibration_database.md | 1 - 1 file changed, 1 deletion(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 2de198447..a3656720f 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -68,7 +68,6 @@ This section displays a list of the variables in the database, as well as their | Variable Name | Type | Description | Unit | | ------------- | ---- | ----------- | ---- | -| run | integer | run number | N/A | | merged_run_idx | integer | index for merge runs | N/A | | first_run_of_merged | integer | first run of the merged runs | N/A | | last_run_of_merged | integer | last run of the merged runs | N/A | From 37eef2236989123bfc33a815f5009e2578b4891c Mon Sep 17 00:00:00 2001 From: sungbinoh Date: Tue, 21 Oct 2025 13:28:25 -0500 Subject: [PATCH 1323/1437] adding __iov_id request for SBND etau table --- sbnd_calibration_database.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index a3656720f..03060cf02 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -63,7 +63,8 @@ This section displays a list of the variables in the database, as well as their ### tpc_elifetime_data - Folder description: This folder contains electron lifetime data - Channel number: No meaning -- Number of rows: 1 for each run +- Number of rows: 1 for each merged run + - When filling the folder, `__iov_id` should be 1000000000 + first_run_of_merged - Suggested table structure | Variable Name | Type | Description | Unit | From 6d7ecd7af04abcdbb833a09a49bec7a2eb1a5579 Mon Sep 17 00:00:00 2001 From: Marco Del Tutto Date: Tue, 21 Oct 2025 18:24:17 -0500 Subject: [PATCH 1324/1437] Update --- sbndcode_wiki/The_SBND_flux_files.md | 84 +++++++++++++++------------- 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/sbndcode_wiki/The_SBND_flux_files.md b/sbndcode_wiki/The_SBND_flux_files.md index 9c23dc8dd..4d2ebbdfd 100644 --- a/sbndcode_wiki/The_SBND_flux_files.md +++ b/sbndcode_wiki/The_SBND_flux_files.md @@ -91,9 +91,50 @@ files. What configuration to use? ----------------------------------------------------------------------------------------- -These are the latest and (at the time of writing) more accurate flux configurations to use. -- **Small window** (used for most productions): **configK** -- **Large window** (used for the dirt events production): **configL** +These are the latest and more accurate flux configurations to use. +- **G4BNB** (used for upcoming productions): **FHC, v1.1.0** +- **Small window** (used for previous productions): **configK** +- **Large window** (used for the dirt/rockbox events in previous productions): **configL** + + +G4BNB Configurations +---------------------------------------------------------- + +Flux files in `dk2nu` format are located at: +```bash +/pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/ +``` + +The xml configuration file is located at +```bash +/cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/v1.1.0/GNuMIFlux.xml +``` + +### FHC, v1.1.0 +BNB simulation in forward horn current: +```bash +/pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.1.0/fhc/ +``` +First production is configuration `a`. + +### RHC, v1.0.0 +BNB simulation in reverse horn current: +```bash +/pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/rhc/ +``` +First production (20250707-14:46) is configuration `a`. This has a bug, do NOT use. + +Second production (20250808-16:47) is configuration `b`. + +### Beam-Dump, v1.0.0 +BNB simulation in beam dump mode: +```bash +/pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/beamdump/ +``` + +First production (july 2025) is configuration `a`. This has a bug, do NOT use. + +Second production (20250808-16:48) is configuration `b`. A note about pre H configurations (_BooNEToGSimple_) @@ -216,40 +257,3 @@ Files were produced using BooNEtoGSimple on GPVM instead of the legacy MiniBooNE Otherwise, it uses an identical window setup to ConfigI-v1. -G4BNB Configurations ----------------------------------------------------------- - -### G4BNB v1.0.0 dev -This is the first tagged version, and is in development. It is not final. - -Flux files in `dk2nu` format are located at: -```bash -/pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/ -``` - -#### FHC -BNB simulation in forward horn current: -```bash -/pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/fhc/ -``` -First production (v1 plots) is configuration `a`. - -#### RHC -BNB simulation in reverse horn current: -```bash -/pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/rhc/ -``` -First production (20250707-14:46) is configuration `a`. This has a bug, do NOT use. - -Second production (20250808-16:47) is configuration `b`. - -#### Beam-Dump -BNB simulation in beam dump mode: -```bash -/pnfs/sbnd/persistent/fluxFiles/bnb/G4BNB/v1.0.0/beamdump/ -``` - -First production (july 2025) is configuration `a`. This has a bug, do NOT use. - -Second production (20250808-16:48) is configuration `b`. - From a7c36359fcde7cc8195c5ff18560d0a38519c148 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Thu, 23 Oct 2025 10:24:12 -0400 Subject: [PATCH 1325/1437] Update sample.md updating sample definitions --- sbn/sbnprod_wiki/sample.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 6497aa344..d1171aebc 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -69,18 +69,18 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | -| Fall25 Validation - BNB+Cosmics - DNN (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~150k | reco1 | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd_150k| -| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd_150k | -| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | -| --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd_150k | -| --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd_150k | -| Fall25 Validation - BNB+Cosmics (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~150k | reco1 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_sbnd_150k | -| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_larcv_sbnd_150k | -| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_150k | -| --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd_150k | -| --- | --- | --- | --- | flat caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd_150k | +| Fall25 Validation - BNB+Cosmics - DNN (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd| +| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | +| Fall25 Validation - BNB+Cosmics (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_sbnd | +| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_larcv_sbnd | +| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flat caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Low Energy 1-100MeV (200 events p/ file pre-filter) | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | From bdaca5aef16c7a051ae2d9134ed45f34253cb8f6 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 24 Oct 2025 10:19:47 -0500 Subject: [PATCH 1326/1437] Update list of SBND code releases --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 96f1fbae6..6d06df474 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_11_01_01`. | Major release | [Release Notes](ReleaseNotes10110101.md) |`v10_11_01`. | Major release | [Release Notes](ReleaseNotes101101.md) |`v10_10_03_03`. | Major release | [Release Notes](ReleaseNotes10100303.md) |`v10_10_03_02`. | Major release | [Release Notes](ReleaseNotes10100302.md) From b50f24c52ffc7172afe86dca5cf2630b941888a3 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 24 Oct 2025 10:22:58 -0500 Subject: [PATCH 1327/1437] Create release notes for sbndcode v10_11_01_01 Add release notes for sbndcode v10_11_01_01, detailing new features, bug fixes, and updates. --- .../Releases/ReleaseNotes10110101.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10110101.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10110101.md b/sbndcode_wiki/Releases/ReleaseNotes10110101.md new file mode 100644 index 000000000..8e4785f28 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10110101.md @@ -0,0 +1,97 @@ +--- +layout: page +title: ReleaseNotes10110101 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.11.01.01 | 24 Oct 2025 | [ReleaseNotes](ReleaseNotes10110101.html) | +| --- | --- | --- | + + + +sbndcode v10_11_01_01 Release Notes +======================================================================================= +### Release Notes for [sbndcode] from v10_11_01 to v10_11_01_01 +- PR #856: Bugfix/wc random + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #849: Adding new likelihood-based PID variables in larana to sbnd reco2 + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: enhancement, reco1/reco2 + - **Reviewers**: + - **Assignees**: sungbinoh +- PR #843: Update e-lifetime in MC + - **Description**: Apparently we only changed the e-lifetime in reco, not simulation... + - **Labels**: detsim + - **Reviewers**: + - **Assignees**: linyan-w +- PR #845: Digital Noise Event Filter + - **Description**: We had already a digital noise channel filter in the utilities directory of sbndcode, but discussion in the first analysis task force meeting steered us towards an event filter. See SBN-Doc-43681 for details. + - **Labels**: tpc, data + - **Reviewers**: jzennamo + - **Assignees**: tomjunk +- PR #842: TPC Matching in data crtana trees + - **Description**: Something we picked up at the workshop. The crtana trees (produced in calib ntuples) have the TPC matching turned off for data unnecessarily. + - **Labels**: enhancement + - **Reviewers**: + - **Assignees**: henrylay97 + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_11_01_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_11_01_01/sbndcode-v10_11_01_01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== + + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-10-24 Nathaniel : Merge branch 'release/v10_11_01_01' +* 2025-10-24 Nathaniel : Update to sbncode v10_11_01_)1 +* 2025-10-24 nathanielerowe : Merge pull request #842 from SBNSoftware/feature/hlay_crtana_data_tpc_matching +* 2025-10-24 nathanielerowe : Merge branch 'develop' into feature/hlay_crtana_data_tpc_matching +* 2025-10-24 nathanielerowe : Merge pull request #845 from SBNSoftware/trj_digital_noise_event_filter_oct9_2025 +* 2025-10-24 nathanielerowe : Merge branch 'develop' into trj_digital_noise_event_filter_oct9_2025 +* 2025-10-24 nathanielerowe : Merge pull request #843 from SBNSoftware/debug/linyan-elifetime +* 2025-10-24 nathanielerowe : Merge branch 'develop' into debug/linyan-elifetime +* 2025-10-24 nathanielerowe : Merge pull request #849 from sungbinoh/feature/sungbino_likepid +* 2025-10-24 nathanielerowe : Merge branch 'develop' into feature/sungbino_likepid +* 2025-10-23 nathanielerowe : Update output commands to drop bad masks and channels +* 2025-10-23 nathanielerowe : Update output commands to drop bad masks and channels +* 2025-10-23 nathanielerowe : Modify output commands to drop certain items +* 2025-10-23 nathanielerowe : Modify output commands to drop specific bad data +* 2025-10-23 nathanielerowe : non-deterministic behavior fix +* 2025-10-23 nathanielerowe : non-deterministic behavior fix +* 2025-10-23 nathanielerowe : non-deterministic behavior fix +* 2025-10-23 nathanielerowe : Update output commands for non-deterministic simulation +* 2025-10-21 sungbinoh : Merge branch 'feature/sungbino_likepid' of github.com:sungbinoh/sbndcode into feature/sungbino_likepid +* 2025-10-21 sungbinoh : adding likepids to sbndcode/JobConfigurations/standard/reco/reco2_data.fcl physics.reco2 +* 2025-10-20 Nathaniel : Merge tag 'v10_11_01' into develop +* 2025-10-20 nathanielerowe : Merge branch 'develop' into feature/sungbino_likepid +* 2025-10-20 nathanielerowe : Merge branch 'develop' into debug/linyan-elifetime +* 2025-10-09 Thomas Junk : Digital Noise Event Filter +* 2025-10-07 linyan-w : Update e-lifetime in MC +* 2025-10-07 Henry Lay : TPC Matching in data crtana trees +* 2025-09-17 sungbinoh : adding likelihood pid + + + From 8bf65d319778f386a862f25df20221325bb24b69 Mon Sep 17 00:00:00 2001 From: sungbinoh Date: Wed, 29 Oct 2025 09:19:05 -0500 Subject: [PATCH 1328/1437] adding channel col to elifetime table --- sbnd_calibration_database.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 03060cf02..f1cf1455e 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -69,6 +69,7 @@ This section displays a list of the variables in the database, as well as their | Variable Name | Type | Description | Unit | | ------------- | ---- | ----------- | ---- | +| channel | integer | No meaning | N/A | | merged_run_idx | integer | index for merge runs | N/A | | first_run_of_merged | integer | first run of the merged runs | N/A | | last_run_of_merged | integer | last run of the merged runs | N/A | From 8bf0a77038190209ef2e804759f534d294a8212a Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 29 Oct 2025 14:01:31 -0400 Subject: [PATCH 1329/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index d1171aebc..768716a65 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -63,25 +63,25 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| Fall25 Validation - Intime - DNN (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~80k | reco1 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| Fall25 Validation - Intime - DNN | MC2025B | v10_10_03_02 | ~80k | reco1 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | -| Fall25 Validation - BNB+Cosmics - DNN (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd| +| Fall25 Validation - BNB+Cosmics - DNN | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd| | --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| Fall25 Validation - BNB+Cosmics (200 events p/ file pre-filter) | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_sbnd | +| Fall25 Validation - BNB+Cosmics | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flat caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| Spring25 - Low Energy 1-100MeV (200 events p/ file pre-filter) | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| Spring25 - Low Energy 1-100MeV | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | From c81c66c30b2cc5248c65cae9461996d45498aedf Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Tue, 4 Nov 2025 17:13:00 +0000 Subject: [PATCH 1330/1437] Update list of code releases --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 29b83bfc4..a3fe539ba 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,9 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +'sbnana' `v10_01_03` | 'sbnana' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_03) +`v10_11_01` | 'sbncode' feature release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_11_01) +`v10_10_05` | 'sbncode' feature release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_05) 'sbnana' `v10_01_02_01` | 'sbnana' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_02_01) `v10_10_03_02` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_02) `v10_10_03_01` | 'sbncode' patch release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_03_01) From 5e9bb40749c3d3ae9bd247aaf446f3cccb1bc100 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Sat, 8 Nov 2025 13:03:34 -0600 Subject: [PATCH 1331/1437] Update SBND code releases list with new version --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 6d06df474..b9f02381c 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_06_00_06`. | Prod patch release | [Release Notes](ReleaseNotes10060006.md) |`v10_11_01_01`. | Major release | [Release Notes](ReleaseNotes10110101.md) |`v10_11_01`. | Major release | [Release Notes](ReleaseNotes101101.md) |`v10_10_03_03`. | Major release | [Release Notes](ReleaseNotes10100303.md) From 8c675b2b79a02559922bc829fd1157efa448ba7a Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Sat, 8 Nov 2025 13:05:34 -0600 Subject: [PATCH 1332/1437] Add release notes for sbndcode v10.06.00.06 Added release notes for sbndcode version 10.06.00.06, including new features, bug fixes, and updated dependencies. --- .../Releases/ReleaseNotes10060006.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10060006.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10060006.md b/sbndcode_wiki/Releases/ReleaseNotes10060006.md new file mode 100644 index 000000000..01118f889 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10060006.md @@ -0,0 +1,90 @@ +--- +layout: page +title: ReleaseNotes10060006 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.06.00.06 | 08 Nov 2025 | [ReleaseNotes](ReleaseNotes10060006.html) | +| --- | --- | --- | + + + +sbndcode v10_06_00_06 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_06_00_06](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_06_00_06/sbndcode-v10_06_00_06.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_06_00_05 to v10_06_00_06 +- PR #851: Apply the commit from PR #845 to production/v10_06_00 + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: tomjunk, seokjuchung +- PR #820: add e-lifetime correction for data in spring production + - **Description**: Sungbin found that in the recent reco2 respinning data still had 100 ms e-lifetime... This PR patches that...! + - **Labels**: bug, calibration + - **Reviewers**: + - **Assignees**: linyan-w +- PR #825: adding TrackHitFillRRStartCut: 1000 and TrackHitFillRREndCut: 1000 to cafmakerjob_sbnd_sce.fcl + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: caf + - **Reviewers**: + - **Assignees**: sungbinoh +- PR #827: yz scale bugfix + - **Description**: Please provide a detailed description of the changes this pull request introduces. This is a copy of PR 826 for the production branch. + - **Labels**: bug, reco1/reco2 + - **Reviewers**: + - **Assignees**: sxy1439 +- PR #866: Add bug fix to FrameShift module when RWM signal is missing - Spring Production + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: bug + - **Reviewers**: + - **Assignees**: VCLanNguyen + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-11-08 Nathaniel : Update versioning +* 2025-11-08 nathanielerowe : Merge pull request #866 from SBNSoftware/lnguyen/frame_bugfix_v10_06_00_05 +* 2025-11-08 nathanielerowe : Merge branch 'production/v10_06_00' into lnguyen/frame_bugfix_v10_06_00_05 +* 2025-11-08 nathanielerowe : Update output commands in sbnd_ci_single_detsim test +* 2025-11-08 nathanielerowe : Update output commands for WireCell simulation +* 2025-11-08 nathanielerowe : Update output commands for WireCell simulation +* 2025-11-08 nathanielerowe : Update output commands in sbnd_ci_nucosmics_detsim_fcl +* 2025-11-08 nathanielerowe : Merge pull request #827 from SBNSoftware/bugfix/yz_norm +* 2025-11-08 nathanielerowe : Merge branch 'production/v10_06_00' into bugfix/yz_norm +* 2025-11-08 nathanielerowe : Merge pull request #825 from sungbinoh/feature/sungbino_caf_hit_rr_2025_spring +* 2025-11-08 nathanielerowe : Merge branch 'production/v10_06_00' into feature/sungbino_caf_hit_rr_2025_spring +* 2025-11-08 nathanielerowe : Merge pull request #820 from SBNSoftware/bugfix_elifetime_springprod +* 2025-11-08 nathanielerowe : Merge branch 'production/v10_06_00' into lnguyen/frame_bugfix_v10_06_00_05 +* 2025-11-06 VCLanNguyen : Add bug fix when RWM signal is missing +* 2025-11-05 nathanielerowe : Merge branch 'production/v10_06_00' into bugfix_elifetime_springprod +* 2025-11-05 nathanielerowe : Merge branch 'production/v10_06_00' into feature/sungbino_caf_hit_rr_2025_spring +* 2025-11-05 nathanielerowe : Merge branch 'production/v10_06_00' into bugfix/yz_norm +* 2025-11-05 nathanielerowe : Update sbncode version to v10_06_00_07 +* 2025-11-06 Seokju Chung : Merge pull request #851 from SBNSoftware/trj_pr845_to_production_v10_06_00 +* 2025-10-17 Thomas Junk : Apply the commit from PR #845 to production/v10_06_00 +* 2025-09-18 Shweta Yadav : yz scale bugfix +* 2025-09-16 sungbinoh : adding TrackHitFillRRStartCut: 1000 and TrackHitFillRREndCut: 1000 to cafmakerjob_sbnd_sce.fcl +* 2025-09-16 Linyan Wan : add e-lifetime correction... +* 2025-09-04 nathanielerowe : Update CMakeLists.txt From 95dc7ee04aa6803d36e5b5a43bd854cd75d7c1ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20S=C3=A1nchez=20Castillo?= <121103809+asanchezcastillo@users.noreply.github.com> Date: Wed, 12 Nov 2025 11:51:17 +0100 Subject: [PATCH 1333/1437] Add non-linearity parameters for PMT simulation Added parameters for PMT non-linearity simulation and on/off PMTs. --- sbnd_calibration_database.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 47816b02a..97f761873 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -133,12 +133,15 @@ This section displays a list of the variables in the database, as well as their | caen_digitizer | integer | CAEN digitizer to which the PMT is connected | N/A | | caen_digitizer_channel | integer | CAEN digitizer channel to which the PMT is connected | N/A | | total_transit_time | real | Total transit time | ns | +| on_pmt | bool | Whether the channel is powered on | N/A | | reconstruct_channel | bool | Whether the channel is used for reconstruction | N/A | | cosmic_timing_correction | real | Timing correction derived from cosmic muon calibration | ns | | spe_amp | real | Mean amplitude of SPE | ADC | | spe_amp_std | real | Std of the SPE amplitude | ADC | | gauss_w_wc_power | real | Power parameter for Gauss noise filter | N/A | | gauss_wc | real | WC parameter for Gauss noise filter | GHz | +| nonlinearity_pesat | real | Parameter PESat for PMT non linearity simulation | N/A | +| nonlinearity_alpha | real | Parameter alpha for PMT non linearity simulation | N/A | | ser_vec_0 → ser_vec_550 | real | ADC count per bin (550 in total) for the Single Electron Response (SER) pulse (More info: [DocDB 38059](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=38059)) | ADC | From 3168bdf23ea2fcd24876589a5da795980b5991e1 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:52:02 -0600 Subject: [PATCH 1334/1437] Add new sbndcode release v10_06_00_08 --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index b9f02381c..d6adf94ad 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -21,7 +21,8 @@ List of `sbndcode` releases These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes - |-----------------------------|---------------------------------------------|-------------------------------------------- + |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_06_00_08`. | Prod patch release | [Release Notes](ReleaseNotes10060008.md) |`v10_06_00_06`. | Prod patch release | [Release Notes](ReleaseNotes10060006.md) |`v10_11_01_01`. | Major release | [Release Notes](ReleaseNotes10110101.md) |`v10_11_01`. | Major release | [Release Notes](ReleaseNotes101101.md) From 86f76ad6b2b760bf0a82232dd6181fceafc7fe4f Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:55:34 -0600 Subject: [PATCH 1335/1437] Add release notes for sbndcode v10.06.00.08 Added release notes for sbndcode version 10.06.00.08, detailing new features, bug fixes, and updated dependencies. --- .../Releases/ReleaseNotes10060008.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10060008.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10060008.md b/sbndcode_wiki/Releases/ReleaseNotes10060008.md new file mode 100644 index 000000000..df4837e5f --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10060008.md @@ -0,0 +1,65 @@ +--- +layout: page +title: ReleaseNotes10060008 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.06.00.08 | 12 Nov 2025 | [ReleaseNotes](ReleaseNotes10060008.html) | +| --- | --- | --- | + + + +sbndcode v10_06_00_08 Release Notes +======================================================================================= +### Release Notes for [sbndcode] from v10_06_00_06 to v10_06_00_08 +- PR #868: Update versioning + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #861: Feature/acastill springprod bfm + - **Description**: PR https://github.com/SBNSoftware/sbndcode/pull/807 into spring production branch. + - **Labels**: + - **Reviewers**: jzennamo + - **Assignees**: asanchezcastillo + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_06_00_08](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_06_00_08/sbndcode-v10_06_00_08.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-11-12 nathanielerowe : Merge pull request #861 from SBNSoftware/feature/acastill_springprod_bfm +* 2025-11-12 nathanielerowe : Merge branch 'production/v10_06_00' into feature/acastill_springprod_bfm +* 2025-11-12 nathanielerowe : Update sbncode version to v10_06_00_08 +* 2025-11-08 nathanielerowe : Merge pull request #868 from SBNSoftware/release/v10_06_00_06 +* 2025-11-07 Alejandro Sánchez Castillo : run bfm in one-to-many mode +* 2025-11-05 nathanielerowe : Merge branch 'production/v10_06_00' into feature/acastill_springprod_bfm +* 2025-11-05 nathanielerowe : Merge branch 'production/v10_06_00' into feature/acastill_springprod_bfm +* 2025-09-02 Alejandro Sánchez Castillo : Add score to the tpcpmt bfm +* 2025-07-14 Alejandro Sánchez Castillo : Fix typo +* 2025-07-14 Alejandro Sánchez Castillo : Cleanup +* 2025-07-14 Alejandro Sánchez Castillo : Cleanup +* 2025-07-14 Alejandro Sánchez Castillo : Cleanup +* 2025-07-14 Alejandro Sánchez Castillo : Update config fcl +* 2025-07-14 Alejandro Sánchez Castillo : Improve BFM with charge/light directionality From 450cb2dd9b93d931c4657cf91c957b49d1eb4097 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 14 Nov 2025 15:52:36 -0600 Subject: [PATCH 1336/1437] Add new release v10_12_02 to release notes --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index d6adf94ad..d933a4215 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_12_02`. | Prod patch release | [Release Notes](ReleaseNotes101202.md) |`v10_06_00_08`. | Prod patch release | [Release Notes](ReleaseNotes10060008.md) |`v10_06_00_06`. | Prod patch release | [Release Notes](ReleaseNotes10060006.md) |`v10_11_01_01`. | Major release | [Release Notes](ReleaseNotes10110101.md) From 9988414275f5a590f2fd1a7e88af57248d3694e3 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 14 Nov 2025 15:54:04 -0600 Subject: [PATCH 1337/1437] Add release notes for sbndcode v10.12.02 Added release notes for sbndcode version 10.12.02, detailing new features, bug fixes, and updates. --- sbndcode_wiki/Releases/ReleaseNotes101202.md | 117 +++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes101202.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes101202.md b/sbndcode_wiki/Releases/ReleaseNotes101202.md new file mode 100644 index 000000000..98868284c --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes101202.md @@ -0,0 +1,117 @@ +--- +layout: page +title: ReleaseNotes101202 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.12.02 | 14 Nov 2025 | [ReleaseNotes](ReleaseNotes101202.html) | +| --- | --- | --- | + + + +sbndcode v10_12_02 Release Notes +======================================================================================= +### Release Notes for [sbndcode] from v10_11_01_01 to v10_12_02 +- PR #840: Use vector not set for CRTTrack taggers + - **Description**: Change usage of CRT track tagger list to be vector not set. Closes issue 768. + - **Labels**: crt + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #864: Adding a fcl wth 0.1 MeV threshold for dirt + - **Description**: Please provide a detailed description of the changes this pull request introduces. Adding a new fcl file with lower dirt threshold 0.1 MeV for a validation study in 2025 Fall production. Filer efficiency is ~ 29% based on `lar -c prodgenie_corsika_proton_rockbox0p1_sbnd.fcl -n 100`. Bellow is a table from Macro's PR [792](https://github.com/SBNSoftware/sbndcode/pull/792). | FHiCL | Cut on Deposited Energy | Pass Rate | |---|---|---| | `prodgenie_corsika_proton_rockbox_sbnd.fcl` | E_dep>1 MeV | TPD | | `prodgenie_corsika_proton_rockbox100_sbnd.fcl` | E_dep>100 MeV | 17.9% | | `prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd.fcl` | 11MeV | 23.5% So, there would be about 25% increase in the filtering efficiency compared to 1 MeV threshold. For the record, in this version of sbndcode (`v10_11_01_01`), -n 100 gives filtering efficiencies for various thresholds - 0.1 MeV: 29/100 - 0.5 MeV: 24/100 - 1 MeV: 22/100 So, 0.5 MeV will increase the filtering efficiency about 10% compared to 1 MeV. + - **Labels**: simulation + - **Reviewers**: + - **Assignees**: sungbinoh +- PR #833: Veto flashes outside the bnb time window + - **Description**: This PR changes the BFM workflow from many-to-many matching to one-to-many. Based on ICARUS' experience, this has shown to yield a better matching efficiency (see https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=33862) Please provide a detailed description of the changes this pull request introduces. + - **Labels**: enhancement + - **Reviewers**: + - **Assignees**: asanchezcastillo +- PR #850: HNL MeVPrtl fcls for generation + - **Description**: Fcls included to generate samples with and without cosmics for production. Included [35, 50, 75, 100, 125, 140] MeV masses for N--> nue+e- channel and [140, 165, 190, 215, 240, 260] MeV masses for N --> nu pi0. + - **Labels**: enhancement + - **Reviewers**: + - **Assignees**: jorge-romeo +- PR #848: changes for special blip processing + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: Jjm321814 +- PR #834: Feature/acastill lightpropagationfixes + - **Description**: Remove CorrectedOpFlash attributes that can be found via slice-correctedopflash assns. It also changes the attributes to reflect each of the corrections separately. + - **Labels**: enhancement + - **Reviewers**: + - **Assignees**: asanchezcastillo + +* 2025-11-14 nathanielerowe : Merge pull request #834 from SBNSoftware/feature/acastill_lightpropagationfixes +* 2025-11-14 nathanielerowe : Merge branch 'develop' into feature/acastill_lightpropagationfixes +* 2025-11-14 nathanielerowe : Merge pull request #848 from SBNSoftware/feature/separate_blip_hitfinding_fcl +* 2025-11-14 nathanielerowe : Merge branch 'develop' into feature/separate_blip_hitfinding_fcl +* 2025-11-14 nathanielerowe : Merge pull request #850 from jorge-romeo/HNL_masses_gen_fcls +* 2025-11-14 nathanielerowe : Merge branch 'develop' into HNL_masses_gen_fcls +* 2025-11-14 nathanielerowe : Merge pull request #833 from SBNSoftware/bugfix/acastill_bfm_timeveto +* 2025-11-14 nathanielerowe : Merge branch 'develop' into bugfix/acastill_bfm_timeveto +* 2025-11-14 nathanielerowe : Merge pull request #864 from sungbinoh/feature/sungbin_dirt_th_0p1MeV +* 2025-11-14 nathanielerowe : Merge branch 'develop' into feature/sungbin_dirt_th_0p1MeV +* 2025-11-12 nathanielerowe : Merge branch 'develop' into feature/acastill_lightpropagationfixes +* 2025-11-12 nathanielerowe : Update sbncode version to v10_12_02 +* 2025-11-12 kjplows : update sbncode dep for CI +* 2025-11-10 nathanielerowe : Merge branch 'develop' into feature/acastill_lightpropagationfixes +* 2025-11-10 nathanielerowe : Merge pull request #840 from SBNSoftware/feature/hlay_crt_track_tagger_order +* 2025-11-10 nathanielerowe : Merge branch 'develop' into feature/acastill_lightpropagationfixes +* 2025-11-06 sungbinoh : adding prodgenie_corsika_proton_rockbox0p1_sbnd.fcl that wth 0.1 MeV th. for dirt +* 2025-11-04 Alejandro Sánchez Castillo : Merge branch 'develop' into bugfix/acastill_bfm_timeveto +* 2025-11-04 John Plows : Merge branch 'develop' into feature/hlay_crt_track_tagger_order +* 2025-10-30 Linyan Wan : Merge branch 'feature/separate_blip_hitfinding_fcl' of github.com:SBNSoftware/sbndcode into feature/separate_blip_hitfinding_fcl +* 2025-10-30 Linyan Wan : Change data CI cafmaker include to follow the standard sce +* 2025-10-29 nathanielerowe : fix drops overwrite +* 2025-10-29 Linyan Wan : dnn tags for data & MC +* 2025-10-28 Linyan Wan : add dnn label to cnn +* 2025-10-27 Jacob McLaughlin : added special blip process back in +* 2025-10-27 Jacob McLaughlin : Merge branch 'develop' into feature/separate_blip_hitfinding_fcl +* 2025-10-24 Nathaniel : Merge tag 'v10_11_01_01' into develop +* 2025-10-24 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_track_tagger_order +* 2025-10-23 linyan-w : Update standard_detsim_sbnd.fcl +* 2025-10-23 nathanielerowe : Merge branch 'develop' into feature/separate_blip_hitfinding_fcl +* 2025-10-21 nathanielerowe : Merge branch 'develop' into feature/acastill_lightpropagationfixes +* 2025-10-21 Jacob McLaughlin : addressing several code review comments +* 2025-10-20 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_track_tagger_order +* 2025-10-16 jorge-romeo : Add fcls with cosmics +* 2025-10-16 jorge-romeo : HNL MeVPrtl gen files for [35, 50, 75, 100, 125, 140] MeV for N --> nue+e- and [140, 165, 190, 215, 240, 260] MeV for N --> nu pi0 +* 2025-10-15 Jacob McLaughlin : adjusted min hit heights +* 2025-10-15 Jacob McLaughlin : Missed a couple files from the other branch +* 2025-10-15 Jacob McLaughlin : Forcing low threshold trad roi on by default in data +* 2025-10-15 Jacob McLaughlin : changes for special blip processing +* 2025-09-29 Alejandro Sánchez Castillo : Add flash attributes and initialize flash geo +* 2025-09-26 Alejandro Sánchez Castillo : Fix pfp ordering when using SCE products +* 2025-09-26 Alejandro Sánchez Castillo : Veto flashes outside the bnb time window +* 2025-09-26 Alejandro Sánchez Castillo : Update attributed +* 2025-09-26 Alejandro Sánchez Castillo : Update analyzer +* 2025-07-28 Henry Lay : Use vector not set for CRTTrack taggers + + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_12_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_12_02/sbndcode-v10_12_02.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- From eba99041091b0b3e38b8411ce68757f19e864a03 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 17 Nov 2025 12:33:02 -0600 Subject: [PATCH 1338/1437] Update SBND code releases list with new version --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index d933a4215..c31ce5622 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,7 +22,8 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- - |`v10_12_02`. | Prod patch release | [Release Notes](ReleaseNotes101202.md) + |`v10_06_00_09`. | Prod patch release | [Release Notes](ReleaseNotes10060009.md) + |`v10_12_02`. | Major release | [Release Notes](ReleaseNotes101202.md) |`v10_06_00_08`. | Prod patch release | [Release Notes](ReleaseNotes10060008.md) |`v10_06_00_06`. | Prod patch release | [Release Notes](ReleaseNotes10060006.md) |`v10_11_01_01`. | Major release | [Release Notes](ReleaseNotes10110101.md) From 3139d4c92f719b57484c6d66da49c1950321efd1 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 17 Nov 2025 12:34:07 -0600 Subject: [PATCH 1339/1437] Add release notes for sbndcode v10.06.00.09 --- .../Releases/ReleaseNotes10060009.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10060009.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10060009.md b/sbndcode_wiki/Releases/ReleaseNotes10060009.md new file mode 100644 index 000000000..2aa15c57b --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10060009.md @@ -0,0 +1,50 @@ +--- +layout: page +title: ReleaseNotes10060009 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.06.00.09 | 17 Nov 2025 | [ReleaseNotes](ReleaseNotes10060009.html) | +| --- | --- | --- | + + + +sbndcode v10_06_00_09 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_06_00_09](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_06_00_09/sbndcode-v10_06_00_09.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_06_00_08 to v10_06_00_09 +- PR #870: Update to sbncode v10_06_00_09 + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-11-17 Nathaniel : Update to sbncode v10_06_00_09 +* 2025-11-12 nathanielerowe : Merge pull request #870 from SBNSoftware/release/v10_06_00_08 +* 2025-11-12 Nathaniel : Update to sbncode v10_06_00_08 + From 9a25b4be8e366d72a806f51319e5a188da28b79b Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:06:26 -0600 Subject: [PATCH 1340/1437] Add new SBND code release v10_12_02_01 --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index c31ce5622..d3ff1cbb2 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_12_02_01`. | Major release | [Release Notes](ReleaseNotes10120201.md) |`v10_06_00_09`. | Prod patch release | [Release Notes](ReleaseNotes10060009.md) |`v10_12_02`. | Major release | [Release Notes](ReleaseNotes101202.md) |`v10_06_00_08`. | Prod patch release | [Release Notes](ReleaseNotes10060008.md) From ea284f6ec348f55ded90bd47f9d593e5f2589738 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:08:10 -0600 Subject: [PATCH 1341/1437] Add release notes for sbndcode v10.12.02.01 Add release notes for sbndcode version 10.12.02.01, detailing new features, bug fixes, and updated dependencies. --- .../Releases/ReleaseNotes10120201.md | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10120201.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10120201.md b/sbndcode_wiki/Releases/ReleaseNotes10120201.md new file mode 100644 index 000000000..5af661e13 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10120201.md @@ -0,0 +1,123 @@ +--- +layout: page +title: ReleaseNotes10120201 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.12.02.01 | 19 Nov 2025 | [ReleaseNotes](ReleaseNotes10120201.html) | +| --- | --- | --- | + + + +sbndcode v10_12_02_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_12_02_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_12_02_01/sbndcode-v10_12_02_01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_12_02 to v10_12_02_01 +- PR #860: GDML v02_06 - fix TPC z + - **Description**: 760 introduced GDML v02_05 which intended to move the z position of the first TPC wire back by 4.2cm but a typo meant it moved it by 4.65cm. This PR introduces GDML v02_06 which moves the position forward by 0.45cm ensuring they are in the intended location. Whilst using v02_05 another bug was also found. The WireCell stage requires it's own geometry file which can be created by processing the GDML. This hadn't been updated for v02_05 and resulted in offsets between the true and reconstructed positions. For v02_06 this update is made so that the same does not occur. This PR: - Adds the v02_06 base GDML and the two processed versions. - Points the geometry fcl at the new GDML - Points the GENIE rockbox fcls at a new xml created with the new GDML & current flux - Points the WireCell jsonnet at the new WireCell geometry file. The latter two files --are-- _will be_ provided in Lynn's accompanying PR SBNSoftware/sbnd_data1 These PRs will close issue 846 + - **Labels**: bug, geometry + - **Reviewers**: marcodeltutto + - **Assignees**: henrylay97, lynnt20 +- PR #858: Blip True EDep from sim:IDE Object + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: Jjm321814 +- PR #865: Add bug fix to FrameShift module when RWM signal is missing + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: + - **Reviewers**: + - **Assignees**: VCLanNguyen +- PR #867: Fix lightproptime for cases when there is no SPEC TDC + - **Description**: When there is no SPECTDC products on the event the light propagation module does not put any `sbn::CorrectedOpFlashTiming` object on the event, which causes an error. This PR fixes the issue by replacing the return statement with a continue statement. It does also fix a minor bug found when running pds-only reconstruction. Waveform alignment module was not correctly configured in this case. + - **Labels**: bug + - **Reviewers**: GaetanoFricano + - **Assignees**: asanchezcastillo +- PR #839: CRT Calibration Database Interface + - **Description**: Removes old calibration service that read text files and replace with new service, modelled on the PMT one, that uses the calibration database as requested. For now there is still a single value for each parameter but others are working on getting time/run dependency available. A lot of fcl changes are made to cope with this. I have also taken the opportunity to move a lot more functionality into the `CRTChannelMapService` to avoid many algorithms doing their own constructions of channel IDs. The database files are added via SBNSoftware/sbnd_data2 This PR will resolve 770. + - **Labels**: enhancement, maintenance, crt, calibration + - **Reviewers**: asanchezcastillo + - **Assignees**: henrylay97 + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-11-19 Nathaniel : Merge branch 'release/v10_12_02_01' +* 2025-11-19 Nathaniel : Update to sbndcode v10_12_02_01 +* 2025-11-19 nathanielerowe : Merge pull request #839 from SBNSoftware/feature/hlay_crt_calibration_database_interface +* 2025-11-19 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_calibration_database_interface +* 2025-11-19 nathanielerowe : Merge pull request #867 from SBNSoftware/bugfix/acastill_lightproptime +* 2025-11-19 nathanielerowe : Merge branch 'develop' into bugfix/acastill_lightproptime +* 2025-11-19 nathanielerowe : Merge pull request #865 from SBNSoftware/lnguyen/frame_bugfix_v10_11_01 +* 2025-11-19 nathanielerowe : Merge branch 'develop' into lnguyen/frame_bugfix_v10_11_01 +* 2025-11-19 nathanielerowe : Merge pull request #858 from SBNSoftware/feature/blip_changeto_simide +* 2025-11-19 nathanielerowe : Merge branch 'develop' into feature/blip_changeto_simide +* 2025-11-19 Henry Lay : Add extra library for safety +* 2025-11-18 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_calibration_database_interface +* 2025-11-18 nathanielerowe : Merge pull request #860 from SBNSoftware/feature/hlay_lynnt_gdml_v02_06 +* 2025-11-18 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_calibration_database_interface +* 2025-11-18 nathanielerowe : Merge branch 'develop' into feature/hlay_lynnt_gdml_v02_06 +* 2025-11-18 nathanielerowe : Update sbnd_data version to v01_37_00 +* 2025-11-17 nathanielerowe : Update SkipTesting.txt to include BNB Flux files +* 2025-11-17 nathanielerowe : Merge branch 'develop' into bugfix/acastill_lightproptime +* 2025-11-17 nathanielerowe : Merge branch 'develop' into lnguyen/frame_bugfix_v10_11_01 +* 2025-11-17 nathanielerowe : Merge branch 'develop' into feature/blip_changeto_simide +* 2025-11-17 nathanielerowe : Merge branch 'develop' into feature/hlay_lynnt_gdml_v02_06 +* 2025-11-17 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_calibration_database_interface +* 2025-11-14 Nathaniel : Merge tag 'v10_12_02' into develop +* 2025-11-11 Henry Lay : Bugfix on if statement +* 2025-11-10 nathanielerowe : Merge branch 'develop' into feature/hlay_lynnt_gdml_v02_06 +* 2025-11-10 Alejandro Sánchez Castillo : Add waveform alignment module also for pds-only reco +* 2025-11-07 Alejandro Sánchez Castillo : Fix for cases when there is no SPEC TDC +* 2025-11-06 VCLanNguyen : Add bug fix when RWM signal is missing +* 2025-11-05 Jacob McLaughlin : Merge branch 'feature/blip_adding_collection_hitclust' into feature/blip_changeto_simide +* 2025-11-04 Jacob McLaughlin : Outputing collection plane hit clusts +* 2025-11-04 Jacob McLaughlin : Removing debug +* 2025-10-29 nathanielerowe : Merge branch 'develop' into feature/hlay_lynnt_gdml_v02_06 +* 2025-10-28 Henry Lay : GDML v02_06 - fix TPC z +* 2025-10-24 Jacob McLaughlin : Merge branch 'develop' into feature/blip_changeto_simide +* 2025-10-24 Jacob McLaughlin : Adjusted to only include collection plane +* 2025-10-21 Jacob McLaughlin : initial draft of simIDE interface +* 2025-10-15 Jacob McLaughlin : Updated Sim::EnergyDeposit to Sim::IDE +* 2025-10-02 Henry Lay : Don't want them permanently on +* 2025-10-02 Henry Lay : Remove old debug statements +* 2025-10-02 Henry Lay : Better debug statements +* 2025-10-02 Henry Lay : Consistent usage +* 2025-10-02 Henry Lay : And make use of that +* 2025-10-02 Henry Lay : Combine crt services for better maintenance +* 2025-10-02 Henry Lay : Remove old calibration service +* 2025-10-02 Henry Lay : Better use of service (step 1) +* 2025-10-02 Henry Lay : Move all channel calculations into the channel map service +* 2025-10-01 Henry Lay : Ensure values from database are updated on the start of each run +* 2025-10-01 Henry Lay : Use the channel status enum directly +* 2025-10-01 Henry Lay : Merge error +* 2025-10-01 Henry Lay : Merge branch 'feature/hlay_crt_geo_alg_service' into feature/hlay_crt_calibration_database_interface +* 2025-09-30 Henry Lay : Add channel table in same manner +* 2025-09-29 Henry Lay : Update calibration service to properly pass values +* 2025-09-29 Henry Lay : Merge tag 'v10_10_03_02' into feature/hlay_crt_calibration_database_interface +* 2025-08-22 Henry Lay : Add rest of FEB table and access from CRTGeo alg +* 2025-08-22 Henry Lay : Use data CRT geo alg in CRTAna +* 2025-08-21 Henry Lay : Naive addition of draft for CRT calibration database interface + From 6b0e6d8427a4e8f10db3b5d1fd9e2440287379d8 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Fri, 21 Nov 2025 10:11:51 -0500 Subject: [PATCH 1342/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 768716a65..97d41f3bf 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -11,7 +11,7 @@ toc_title: SBN Production Available Samples -SBN Production Available Samples Page +SBN Production Available Samples Page- ========================================== A list of samples that were requested and produced since Oct 2020 and the status of open requests can be checked at the [SBN Production Requests Database](https://docs.google.com/spreadsheets/d/17mFPGsP7gw4GRLSCwIL15QrtUnLVri_2k2Wjzhd6Ork/edit?usp=sharing). More information on how to make requests can be found at the [SBN Production Wiki](https://sbnsoftware.github.io/sbn/sbnprod_wiki/Wiki). From 5bba30ee0cae9e70560a042189799d6f5027abfe Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:38:09 -0600 Subject: [PATCH 1343/1437] Add v10_14_00 release to SBND code releases list --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index d3ff1cbb2..f07b7ffa9 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_14_00`. | Major release | [Release Notes](ReleaseNotes101400.md) |`v10_12_02_01`. | Major release | [Release Notes](ReleaseNotes10120201.md) |`v10_06_00_09`. | Prod patch release | [Release Notes](ReleaseNotes10060009.md) |`v10_12_02`. | Major release | [Release Notes](ReleaseNotes101202.md) From 48a10df1bfed882628abed76d23af6f911415b09 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:41:01 -0600 Subject: [PATCH 1344/1437] Add release notes for sbndcode v10.14.00 Add release notes for sbndcode v10.14.00, detailing new features, bug fixes, and updates from previous versions. --- sbndcode_wiki/Releases/ReleaseNotes101400.md | 225 +++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes101400.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes101400.md b/sbndcode_wiki/Releases/ReleaseNotes101400.md new file mode 100644 index 000000000..e77e8c5a8 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes101400.md @@ -0,0 +1,225 @@ +--- +layout: page +title: ReleaseNotes101400 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.14.00 | 21 Nov 2025 | [ReleaseNotes](ReleaseNotes101400.html) | +| --- | --- | --- | + + + +sbndcode v10_14_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_14_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_14_00/sbndcode-v10_14_00.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_12_02_01 to v10_14_00 +- PR #863: Update PMT calibration db for new PMT detsim + - **Description**: This PR modifies the PMT Calibration Database Service to provide the information requires for realistic PTM detsim. In particular, it adds function to retrieve: - Whether a PMT is on or off, so the signal for off PMTs is not simulated. This is particularly relevant after the implementation of the new trigger emulation tool. - PMT non-linearity parameters. It does also modify the database configuration file so it can access the latest database tag. NOTE: This PR should be updated with commits from https://github.com/SBNSoftware/sbndcode/pull/873 once the latter is ready to be merged. Please provide a detailed description of the changes this pull request introduces. + - **Labels**: detsim + - **Reviewers**: + - **Assignees**: asanchezcastillo +- PR #875: MC PMT Software Trigger + Trigger Subdirectory Reorganization + - **Description**: Add MC version of PMT Software Trigger, add data PMT Software Trigger (equivalent to DAQ version) and reorganize the Trigger subdirectory in order to differentiate between legacy hardware+software PMT trigger simulation and current PMT software trigger simulation/development. All current PMT Metric modules (producers, filter, and analyzers) have now been moved to Trigger subdirectory `PMTSoftware`. detsim and cafmaker fcls have been updated to run/accept PMT software trigger inputs/outputs. CAF maintainers have been added as reviewers for the accompanying PRs in `sbncode` and `sbnanaobj`. `PMTMetricProducer.cc` Replica of `sbndaq-artdaq/ArtModules/SBND/SoftwareTrigger/PMTMetricProducer_module.cc`. The version in `sbndaq-artdaq` cannot be called in `sbndcode` since DAQ repos are not generally available through UPS, and vice versa. `PMTMCMetricProducer.cc` First-pass at replicating software trigger in data. Inputs are `raw::OpDetWaveform`. Module simply takes 10 us chunk of optical waveforms from the PMTs and sums them into a "flash". + - **Labels**: enhancement + - **Reviewers**: linyan-w + - **Assignees**: lynnt20 +- PR #873: addign time dependent etau correction and global tag for calib DB tag for TPC etau and PDS gain + - **Description**: - Adding global tag feature to summarize tags of calibration DB tables - Referring to icaruscode for the same feature - A new directory `sbndcode/Calibration/configurations/` for this purpose. - We can manage tags of all different calibration DB tables in this directory. - Now `sbndcode/Calibration/PDSDatabaseInterface/pmtcalibrationdatabase_sbnd.fcl` refers to this directory to collect `PMTCalibrationDatabaseTag` and `DatabaseTimeStamp`. - Adding time dependent etau correction for data - Setting `sbnd_calorimetryalgdata.CaloDoLifeTimeCorrection: false` not to apply etau correction in `larreco`. - Then, adding `@local::driftnorm_sql` to `sbnd_calonormtoolsdata` so that etau correction could be made by normtool. - The `sbndcode/Calibration/TPCCalorimetry/NormalizeDriftSQLite_tool.cc` performs etau correction. This module collects etau for each TPC and apply it to the corresponding side of the TPC. - I have validated it using multiple data reco1 files ``` lar -c reco2_data.fcl -s root://fndcadoor.fnal.gov:1094/pnfs/fnal.gov/usr/sbn/data_add/sbn_nd/poms_production/data/MCP2025B_noPOT/v10_10_03_01/FullRun1_RollingDev/reco1/bnblight/d3/reco1_filtered_decoded-raw_filtered_data_EventBuilder3_p2_art2_run18306_10_strmBNBLight_20250308T232959-d323d2a1-41c0-5f6c-ecc2-10dd0aadddcd.root -n 1 ... NormalizeDriftSQLite Tool -- Lifetime Data: TPC East: 67.769 TPC West: 61.8949 ... NormalizeDriftSQLite Tool -- Norm factor: 1.00381 at TPC: 0 Cryo: 0 Time: 0.257529 Track T0: 0, x: -161.693 ... ``` ``` lar -c reco2_data.fcl -s root://fndcadoor.fnal.gov:1094/pnfs/fnal.gov/usr/sbn/data_add/sbn_nd/poms_production/data/MCP2025B_noPOT/v10_10_03_01/FullRun1_RollingDev/reco1/bnblight/e0/reco1_filtered_decoded-raw_filtered_data_EventBuilder5_art1_run18412_18_strmBNBLight_20250410T024835-e0e0fc77-b089-3d97-ecb3-506cf9e2db83.root ... NormalizeDriftSQLite Tool -- Lifetime Data: TPC East: 51.1139 TPC West: 43.6863 ... ``` + - **Labels**: reco1/reco2, data + - **Reviewers**: + - **Assignees**: sungbinoh +- PR #880: Adding missing library link + - **Description**: + - **Labels**: maintenance + - **Reviewers**: aliciavr + - **Assignees**: PetrilloAtWork +- PR #879: Add proton light quenching + - **Description**: Please provide a detailed description of the changes this pull request introduces. This PR implements a light quenching factor for protons. The currently used modified box model is in agreement with experimental data (Ref Doke et al., Jpn. J. Appl. Phys. Vol. 41 (2002) pp. 1538–1545.) for MIPs but not for protons. The dotted line from the figure below shows the modified model prediction in the absence of electric field, which agrees with Figure 2 from the previous reference for MIPs but not for protons. Assuming the same light attenuation factor due to the electric field for protons and electrons (~0.6), the expected relative scintillation yield (L/L0) for protons can be calculated as the value quoted from the reference ~0.81 corrected by the electric field attenuation factor, that is L/L0 ~ 0.49. From the figure below, we can see that the relative scintillation yield currently predicted by the modified box model is ~0.7, so we need an extra quenching factor of 0.7 to match the expected L/L0 ~ 0.49. image + - **Labels**: + - **Reviewers**: ggamezdiego + - **Assignees**: asanchezcastillo +- PR #855: Fix booleans in from new MultiPart Generators + - **Description**: Fix booleans in from new MultiPart Generators + - **Labels**: bug + - **Reviewers**: + - **Assignees**: bear-is-asleep +- PR #854: Adopt G4BNB v1.1.0 Flux Files + - **Description**: This PR changes the default flux files used for the main workflow to use the new [G4BNB v1.1.0](https://github.com/SBNSoftware/G4BNB/releases/tag/v1.1.0) production flux files. Update flux files wiki: https://sbnsoftware.github.io/sbndcode_wiki/The_SBND_flux_files.html Note that, since G4BNB files are in dk2nu format, `GDK2NUFLUXXML` must point to the following file that containes the flux window specification for SBND: ``` export GDK2NUFLUXXML=/cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/v1.1.0/GNuMIFlux.xml ``` Addittionally: - For some genie fhicl files, a "legacy" version is available that runs the with the old flux files: - GENIE only: `sbndcode/JobConfigurations/standard/gen/genie/other_flux_config/flux_configk/` - GENIE+CORSIKA rockbox: `sbndcode/JobConfigurations/standard/gen/genie_corsika/other_flux_config/flux_configl/` - This PR also include fhicls to run in RHC mode and beamdump mode (flux files were made with a previous version of G4BNB, v1.0.0) - This PR includes a CAFMaker fhicl that runs on gen-level files + - **Labels**: simulation + - **Reviewers**: + - **Assignees**: marcodeltutto +- PR #872: updating residual range cut for caf maker with non-sce corrected object + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: caf + - **Reviewers**: + - **Assignees**: sungbinoh +- PR #881: turn coherent noise removal off for both MC and data + - **Description**: Turn off coherent noise removal in noise filtering for both MC and data signal processing. + - **Labels**: detsim, reco1/reco2, data + - **Reviewers**: sungbinoh, weihythu + - **Assignees**: wjdanswjddl +- PR #853: adding TrackLikePidLabel: to cafmakerjob fcl files + - **Description**: This PR adds `physics.producers.cafmaker.TrackLikePidLabel` into cafmakerjob fcl files. This is required to save the likelihood PID products created in reco2 stages into CAF. For more information about the PID variables, please check [SBN-doc-42330](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=42330). - A relevant PR in `larana` that adds new PID class `LikelihoodPIDAlg`: [PR41](https://github.com/LArSoft/larana/pull/41) - A relevant PR in `sbndcode` to add LikelihoodPIDAlg product in reco2 stage [PR849](https://github.com/SBNSoftware/sbndcode/pull/849). - Relevant PRs in sbnanaobj and sbncode: `sbnanaobj` [PR168](https://github.com/SBNSoftware/sbnanaobj/pull/168) and `sbncode` [PR593](https://github.com/SBNSoftware/sbncode/pull/593) . + - **Labels**: caf + - **Reviewers**: justinjmueller + - **Assignees**: sungbinoh +- PR #876: Feature/acastill realistic pmt mc + - **Description**: This PR aims at providing a realistic PMT MC simulation at the detsim stage. In particular it modifies the following items: - PMT response simulation: with this PR the response of each PMT is simulated independently using a SER retrieved from the calibration database. - PMT noise simulation: with this PR the simulated noise for each PMT is randomly sampled from a file containing 1000 noise templates for each PMT. - PMT Gain Fluctuation: this PR introduces a new tool `PMTGaussianGainFluctuation_tool.cc` that allows simulating a different gaussian gain fluctuation for each PMT. - PMT Non-linearities: this PR introduces a new tool `PMTNonLinearityTF1ChannelByChannel_tool.cc` that allows simulating pmt non-linearity on a channel by channel basis. - PMT Pulse Oscillation: this PR introduces a new module `PMTPulseOscillation_module.cc` that reproduces the low-frequency oscillations that have been observed after large-amplitude signals. More information here (). - PMT Detection Efficiency: this PR modifies the PMT detection efficiencies to improve the data/MC agreement. This PR does all the mentioned changes to the standard simulation workflow. It does also refactor the PMT-related fcl configuration files so there is only one single configuration file that contains ideal MC, realistic MC and data configurations. + - **Labels**: detsim + - **Reviewers**: + - **Assignees**: asanchezcastillo + + +sbndcode sbndcode +--------------------------------------------------- + +* 2025-11-21 Nathaniel : Merge branch 'release/v10_14_00' +* 2025-11-21 Nathaniel : Update versioning +* 2025-11-21 nathanielerowe : Merge pull request #876 from SBNSoftware/feature/acastill_realistic_pmt_mc +* 2025-11-21 Alejandro Sánchez Castillo : Fix path within sbnd_data +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/acastill_realistic_pmt_mc +* 2025-11-21 nathanielerowe : Update sbncode version to v10_14_00 +* 2025-11-21 nathanielerowe : Merge pull request #853 from sungbinoh/feature/sungbino_likepid_into_cafmaker +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/sungbino_likepid_into_cafmaker +* 2025-11-21 nathanielerowe : Merge pull request #881 from SBNSoftware/feature/munjung-CNR_off +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/munjung-CNR_off +* 2025-11-21 nathanielerowe : Merge pull request #872 from sungbinoh/feature/sungbin_caf_rr_cut_nosce_fcl +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/sungbin_caf_rr_cut_nosce_fcl +* 2025-11-21 nathanielerowe : Merge pull request #854 from SBNSoftware/feature/mdeltutt_g4bnb +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/mdeltutt_g4bnb +* 2025-11-21 nathanielerowe : Merge pull request #855 from SBNSoftware/feature/bearc_fixmultipart +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/bearc_fixmultipart +* 2025-11-21 nathanielerowe : Merge pull request #879 from SBNSoftware/feature/acastill_lightprotonquenching +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/acastill_lightprotonquenching +* 2025-11-21 nathanielerowe : Merge pull request #880 from PetrilloAtWork/feature/gp_linkFix +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/gp_linkFix +* 2025-11-21 nathanielerowe : Merge pull request #873 from sungbinoh/feature/sungbino_timedep_etau +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/sungbino_timedep_etau +* 2025-11-21 Alejandro Sánchez Castillo : Add PMTPulseOscillation subdir +* 2025-11-21 nathanielerowe : Merge pull request #875 from SBNSoftware/feature/lynnt_Fall25_pmtmetrics +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/lynnt_Fall25_pmtmetrics +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/acastill_realistic_pmt_mc +* 2025-11-21 nathanielerowe : Merge pull request #863 from SBNSoftware/feature/acastill_calibdb_update +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/acastill_realistic_pmt_mc +* 2025-11-21 nathanielerowe : Merge branch 'develop' into feature/sungbino_likepid_into_cafmaker +* 2025-11-21 Alejandro Sánchez Castillo : Translate comments on the code +* 2025-11-21 Alejandro Sánchez Castillo : Change PMT detection efficiencies +* 2025-11-21 Alejandro Sánchez Castillo : Treat correctly the on/off calibrated/uncalibrated PMTs +* 2025-11-21 Alejandro Sánchez Castillo : Remove CRT includes +* 2025-11-21 Alejandro Sánchez Castillo : Fix comment on PMT response +* 2025-11-20 Mun Jung Jung : turn coherent noise removal off for both MC and data +* 2025-11-20 nathanielerowe : Add pathPrepend for GNuMIFlux.xml file +* 2025-11-20 nathanielerowe : Merge branch 'develop' into feature/mdeltutt_g4bnb +* 2025-11-20 Gianluca Petrillo : Adding missing library link +* 2025-11-20 nathanielerowe : Merge branch 'develop' into feature/bearc_fixmultipart +* 2025-11-20 nathanielerowe : Merge branch 'develop' into feature/acastill_lightprotonquenching +* 2025-11-20 nathanielerowe : Merge branch 'develop' into feature/acastill_calibdb_update +* 2025-11-20 nathanielerowe : Merge branch 'develop' into feature/sungbino_timedep_etau +* 2025-11-20 nathanielerowe : Merge branch 'develop' into feature/sungbin_caf_rr_cut_nosce_fcl +* 2025-11-20 nathanielerowe : Update sbnd_data version to v01_38_00 +* 2025-11-20 Alejandro Sánchez Castillo : Add proton light quenching +* 2025-11-19 Alejandro Sánchez Castillo : Fix calibration database tag +* 2025-11-19 Alejandro Sánchez Castillo : Update tag for fall production configuration +* 2025-11-19 Alejandro Sánchez Castillo : Fix conflicts +* 2025-11-19 Alejandro Sánchez Castillo : Fix conflicts +* 2025-11-19 Alejandro Sánchez Castillo : Modify standard config to include realistic PMT MC and major fcl refactoring +* 2025-11-19 Alejandro Sánchez Castillo : Remove cout +* 2025-11-19 Alejandro Sánchez Castillo : Update default configuration +* 2025-11-19 Alejandro Sánchez Castillo : Fix noise baseline and cleanup +* 2025-11-19 Alejandro Sánchez Castillo : Remove polarity as fcl-configurable parameter +* 2025-11-19 Alejandro Sánchez Castillo : Remove polarity as fcl-configurable parameter +* 2025-11-19 Alejandro Sánchez Castillo : Modify HDOpticalWaveform configuration for data time sampling +* 2025-11-19 Linyan Wan : Bypass flux version check as the current flux version naming is different +* 2025-11-19 Linyan Wan : Merge remote-tracking branch 'refs/remotes/origin/feature/mdeltutt_g4bnb' into feature/mdeltutt_g4bnb +* 2025-11-19 Linyan Wan : modify the geomscan file +* 2025-11-19 Nathaniel : Merge tag 'v10_12_02_01' into develop +* 2025-11-18 Alejandro Sánchez Castillo : Update database configuration +* 2025-11-19 Alejandro Sánchez Castillo : Revert "Update database configuration" +* 2025-11-19 Alejandro Sánchez Castillo : Fix random number generator +* 2025-11-19 Alejandro Sánchez Castillo : Modify MC workflow for realistic PDS +* 2025-11-19 Alejandro Sánchez Castillo : Add PMT pulse oscillation module +* 2025-11-18 Alejandro Sánchez Castillo : Update database configuration +* 2025-11-18 Alejandro Sánchez Castillo : Remove non linearity parameters from fcl +* 2025-11-13 Alejandro Sánchez Castillo : Declare configure method on base class +* 2025-11-13 Alejandro Sánchez Castillo : Call configuration function before using the tool +* 2025-11-13 Alejandro Sánchez Castillo : Add configuration function for old version +* 2025-11-13 Alejandro Sánchez Castillo : Add intialization method for using calibration database +* 2025-11-18 nathanielerowe : Merge branch 'develop' into feature/mdeltutt_g4bnb +* 2025-11-18 nathanielerowe : Merge branch 'develop' into feature/mdeltutt_g4bnb +* 2025-11-18 Linyan Wan : Merge remote-tracking branch 'refs/remotes/origin/feature/mdeltutt_g4bnb' into feature/mdeltutt_g4bnb +* 2025-11-18 Linyan Wan : Correct table name +* 2025-11-18 sungbinoh : use clockdata for t_drift in NormalizeDriftSQLite_tool.cc. Adding exception handlings too +* 2025-11-18 lynnt20 : add both run1/run2 daq labels +* 2025-11-18 lynnt20 : whoops +* 2025-11-18 lynnt20 : add pmtmetricmc config line and the `sbnd` tag to the config fcl +* 2025-11-18 lynnt20 : remove semicolon throwing fhicl error +* 2025-11-17 lynnt20 : Merge branch 'develop' into feature/lynnt_Fall25_pmtmetrics +* 2025-11-17 nathanielerowe : Merge branch 'develop' into feature/mdeltutt_g4bnb +* 2025-11-17 nathanielerowe : Merge branch 'develop' into feature/sungbino_likepid_into_cafmaker +* 2025-11-17 nathanielerowe : Merge branch 'develop' into feature/mdeltutt_g4bnb +* 2025-11-17 lynnt20 : update to the Run1 producer labels for pmtmetric in the DAQ +* 2025-11-17 lynnt20 : add fcl configurable ADC to PE conversion +* 2025-11-17 lynnt20 : add fcl configurable ADC to PE conversion +* 2025-11-17 lynnt20 : rename producers to be consistent with daq config, add instance name to differentiate between online/offline +* 2025-11-17 lynnt20 : restore deleted CMakeList - dunno how that happened +* 2025-11-17 lynnt20 : undo changes AKA move fcls back to PMT subdirectory +* 2025-11-17 lynnt20 : update stream type to match daq config +* 2025-11-17 lynnt20 : add software metric labels to cafmaker +* 2025-11-17 lynnt20 : add software trigger labels to cafmaker +* 2025-11-17 lynnt20 : add software trigger to detsim +* 2025-11-17 lynnt20 : add config fcl for mc producer module +* 2025-11-17 lynnt20 : clean up fcls, update metric labels to reflect current daq config - producer labels should be `pmtmetricbnb` and `pmtmetricoffbeam` +* 2025-11-17 Linyan Wan : Rename fcls to avoid conflict +* 2025-11-17 sungbinoh : For Alejandro's comment, adding pds db timestamp into PDS tagsets too. +* 2025-11-17 sungbinoh : adding comment for run range r1 +* 2025-11-14 sungbinoh : minor update +* 2025-11-14 sungbinoh : addign time dependent etau correction and global tag for calib DB tags for TPC etau and PDS gain +* 2025-11-14 lynnt20 : simple readme +* 2025-11-14 lynnt20 : remove ttree and update padding +* 2025-11-14 sungbinoh : updating TrackHitFillRRStartCut and TrackHitFillRREndCut to 1000 for cafmakerjob_sbnd.fcl +* 2025-11-14 lynnt20 : additions to keep offline same as online - changing padding value for sum function - add check for empty container +* 2025-11-14 lynnt20 : clean up cmakelists +* 2025-11-13 lynnt20 : create new subdirectory for software trigger thats in use +* 2025-11-12 lynnt20 : missing trig_ts in trig_metrics +* 2025-11-12 lynnt20 : first commit of working MC software trigger producer +* 2025-02-26 lynnt20 : flash peak pe bug fix +* 2025-02-07 lynnt20 : update to recent daq config +* 2025-01-17 lynnt20 : first commit of offline pmtmetricsproducer (same as daq module), with fcl cleanup +* 2025-11-11 Alejandro Sánchez Castillo : Fix TF1 memory leak +* 2025-11-11 Alejandro Sánchez Castillo : Add off channel attribute for digitalization +* 2025-11-10 Alejandro Sánchez Castillo : Add SER, gain fluct and nonlinearity per channel +* 2025-11-10 Alejandro Sánchez Castillo : Add channel-by-channel non linearity +* 2025-11-06 Alejandro Sánchez Castillo : Update calibration db to provide nonlinearity params +* 2025-11-06 Alejandro Sánchez Castillo : Implement data-based gaussian gain fluctuations +* 2025-11-03 linyan-w : Merge branch 'develop' into feature/mdeltutt_g4bnb +* 2025-10-23 Brinden Carlson : Update multipart generator to have engines run without segmentation faults +* 2025-10-21 Marco Del Tutto : Merge branch 'feature/mdeltutt_g4bnb' of github.com:SBNSoftware/sbndcode into feature/mdeltutt_g4bnb +* 2025-10-21 Marco Del Tutto : Add new and legacy flux fhicl files +* 2025-10-21 Marco Del Tutto : Add G4BNB v1.1.0 flux files +* 2025-10-20 sungbinoh : adding TrackChi2PidLabel to cafmakerjob fcl files +* 2025-10-03 Marco Del Tutto : Add flc files for fhc, rhc, beamdump generation, as well as truth-only caf +* 2025-10-03 Marco Del Tutto : G4BNB flux files production b +* 2025-07-11 Marco Del Tutto : Add files and config to run with G4BNB. Only in beam dump mode for now. + From cd835eba2b74d223b6bc7963b7e180395f1304e5 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Wed, 26 Nov 2025 09:31:59 -0600 Subject: [PATCH 1345/1437] Add new SBND code release v10_14_00_01 --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index f07b7ffa9..726613b9d 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_14_00_01`. | Patch release | [Release Notes](ReleaseNotes10140001.md) |`v10_14_00`. | Major release | [Release Notes](ReleaseNotes101400.md) |`v10_12_02_01`. | Major release | [Release Notes](ReleaseNotes10120201.md) |`v10_06_00_09`. | Prod patch release | [Release Notes](ReleaseNotes10060009.md) From 7ae7611ec039b178cb8a83de749bc8cccf203f76 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Wed, 26 Nov 2025 09:42:12 -0600 Subject: [PATCH 1346/1437] Add release notes for sbndcode v10.14.00.01 Added release notes for sbndcode v10.14.00.01, including new features, bug fixes, and updated dependencies. --- .../Releases/ReleaseNotes10140001.md t | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10140001.md t diff --git a/sbndcode_wiki/Releases/ReleaseNotes10140001.md t b/sbndcode_wiki/Releases/ReleaseNotes10140001.md t new file mode 100644 index 000000000..c7ca09b5a --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10140001.md t @@ -0,0 +1,73 @@ +--- +layout: page +title: ReleaseNotes10140001 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.14.00.01 | 26 Nov 2025 | [ReleaseNotes](ReleaseNotes10140001.html) | +| --- | --- | --- | + + + +sbndcode v10_14_00_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_14_00_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_14_00_01/sbndcode-v10_14_00_01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_14_00 to v10_14_00_01 +- PR #886: Bugifx/acastill realistic pmt + - **Description**: After (https://github.com/SBNSoftware/sbndcode/pull/876), the `OpHitFinder` algorithm for realistic MC workflow was missconfigured. The OpHitFinder module was taking raw waveforms coming from the `pmtpulseoscillation` module instead of `deconvolved` waveforms coming from `opdecopmt` module. This PR corrects the label for the `OpHitFinder` algorithm to use deconvolved waveforms. It does also: - Remove XA reconstruction for light-only reconstruction fcl. - Uses the correct drift estimation curve for realistic MC. - Updates PMT detection efficiencies for better data/MC agreement Please provide a detailed description of the changes this pull request introduces. + - **Labels**: bug + - **Reviewers**: fjnicolas + - **Assignees**: asanchezcastillo +- PR #885: Trigger Emulation Bug Fix and smaller updates + - **Description**: Trigger Emulation Bug Fix includes: - Bug fix: previously the MonPulse length was taken from the FIRST waveforms in the vector of OpDetWaveforms, but this length corresponded to an XArapuca waveform, which is not the same size. This is fixed to now take the length from the first PMT waveform. (this is the major fix!) - Added check: added warnings to make sure we are only considering and slicing PMT waveforms - Added a vector of the number of pairs above threshold to the event (could be added to the cafs later) - Added a vector of the number of pairs above threshold to the PMT decoder output too - Updated Baseline fcl parameter to Run 2 Baseline, + - **Labels**: bug, trigger + - **Reviewers**: + - **Assignees**: npallat +- PR #882: Drop opdaq waveforms + - **Description**: This PR drops the OpDetWaveforms produced by opdaq after running detsim stage. These are no longer required since this OpDetwaveforms used for downstream reconstruction are the ones produced by pmtpulseoscillation. + - **Labels**: bug + - **Reviewers**: + - **Assignees**: asanchezcastillo + +sbndcode +--------------------------------------------------- +* 2025-11-26 nathanielerowe : Merge pull request #882 from SBNSoftware/bugfix/acastill_drop_opdaq_waveforms +* 2025-11-26 nathanielerowe : Merge branch 'develop' into bugfix/acastill_drop_opdaq_waveforms +* 2025-11-26 nathanielerowe : Merge pull request #885 from SBNSoftware/feature/TriggerWorkNikki-PR +* 2025-11-26 nathanielerowe : Merge branch 'develop' into feature/TriggerWorkNikki-PR +* 2025-11-26 nathanielerowe : Merge pull request #886 from SBNSoftware/bugifx/acastill_realisticPMT +* 2025-11-25 Nikki Pallat : Bug fix: empty fPMT_Channels fix +* 2025-11-25 Alejandro Sánchez Castillo : Update PMT Eff for better data/MC agreement +* 2025-11-25 Alejandro Sánchez Castillo : Update PMT Eff for better data/MC agreement +* 2025-11-25 Nikki Pallat : Fix: Change back to Run 1 Baseline and other minor changes to opDetDigitizerSBND_module.cc +* 2025-11-25 Alejandro Sánchez Castillo : Update PMT detection efficiencies +* 2025-11-25 Alejandro Sánchez Castillo : Update PMT baseline +* 2025-11-25 Alejandro Sánchez Castillo : Feed correct label into ophit reconstruction +* 2025-11-25 Alejandro Sánchez Castillo : Remove XA reco for light-only reco fcl +* 2025-11-25 Alejandro Sánchez Castillo : Use realistic MC for MC +* 2025-11-25 Alejandro Sánchez Castillo : Fix drift estimator file for realistic MC +* 2025-11-24 Nikki Pallat : Fix: bug fix for correct MonPulse length, addition of number of pairs over threshold vector to events, updated Baseline to Run 2 Baseline, and checks that we are not considering any XArapuca channels +* 2025-11-24 Alejandro Sánchez Castillo : Drop opdaq waveforms +* 2025-11-21 Nathaniel : Merge tag 'v10_14_00' into develop From a137bf84131bca28e64dd4f5d0fe6353cef397b3 Mon Sep 17 00:00:00 2001 From: Sayan Kr Das <190397255+cyanDash@users.noreply.github.com> Date: Mon, 8 Dec 2025 06:45:00 +0000 Subject: [PATCH 1347/1437] Add new entries for v10_06_00_09 in sample.md Added the reprocessed datasets. --- sbn/sbnprod_wiki/sample.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 97d41f3bf..2cffbf4d4 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -87,6 +87,10 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | | DNN ROI + low-trad threshold (100 events p/ file pre-filter) | MC2025B | v10_09_00 | 30k | reco1 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | @@ -117,22 +121,38 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics 5e18 POT (500 events p/ file pre-filter) | MC2025B | v10_06_00 | ~290k | reco1 | mc_MCP2025B_5e18_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_5e18_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | v10_06_00_02 | --- | reco2 | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics (100 events p/ file pre-filter) | MC2025B | v10_06_00 | ~680k | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics (500 events p/ file pre-filter) | MC2025B | v10_06_00 | ~510k | reco1 | mc_MCP2025B_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Nue CC | MC2025B | v10_06_02 | 556k | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_reco1_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_caf_flat_caf_sbnd | From 44b0a9199688324236e18e9306c847835287a650 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Tue, 9 Dec 2025 11:50:25 -0600 Subject: [PATCH 1348/1437] Add new SBND code release v10_06_00_10 --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 726613b9d..37afc42c3 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_06_00_10`. | Patch release | [Release Notes](ReleaseNotes10060010.md) |`v10_14_00_01`. | Patch release | [Release Notes](ReleaseNotes10140001.md) |`v10_14_00`. | Major release | [Release Notes](ReleaseNotes101400.md) |`v10_12_02_01`. | Major release | [Release Notes](ReleaseNotes10120201.md) From fd7052d7b87ebe1e9c5b8422d467cc397df9c394 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Tue, 9 Dec 2025 11:51:34 -0600 Subject: [PATCH 1349/1437] Add release notes for sbndcode v10.06.00.10 Add release notes for sbndcode version 10.06.00.10, detailing new features, bug fixes, and updated dependencies. --- sbndcode_wiki/Releases/eleaseNotes10060010.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sbndcode_wiki/Releases/eleaseNotes10060010.md diff --git a/sbndcode_wiki/Releases/eleaseNotes10060010.md b/sbndcode_wiki/Releases/eleaseNotes10060010.md new file mode 100644 index 000000000..8b238442c --- /dev/null +++ b/sbndcode_wiki/Releases/eleaseNotes10060010.md @@ -0,0 +1,65 @@ +--- +layout: page +title: ReleaseNotes10060010 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.06.00.10 | 09 Dec 2025 | [ReleaseNotes](ReleaseNotes10060010.html) | +| --- | --- | --- | + + + +sbndcode v10_06_00_10 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_06_00_10](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_06_00_10/sbndcode-v10_06_00_10.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_06_00_09 to v10_06_00_10 +- PR #874: Update to sbncode v10_06_00_09 + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #884: WireMod module for SBND + - **Description**: Add WireMod module and workflow fcls for SBND spring production. Module supports rescaling recob::Wires by Gaussian modifications calculated via 2D Y-Z and X-Theta_XW splines (stored as TGraph2Ds). The workflow fcls run the WireMod module, then reco2 & CAF stages based on WireMod products. **Note**: Module uses sim::IDEs instead of the usual SimEnergyDeposits to support SBND spring production. A switch to SimEnergyDeposits will be updated in a future PR targeting the develop branch. + - **Labels**: enhancement + - **Reviewers**: + - **Assignees**: tbwester, aantonakis + +sbndcode sbndcode +--------------------------------------------------- +* 2025-12-09 Nathaniel : Merge branch 'release/v10_06_00_10' into production/v10_06_00 +* 2025-12-09 Nathaniel : Update to larsoft < version tag > +* 2025-12-08 nathanielerowe : Merge pull request #884 from SBNSoftware/feature/twester_wiremod +* 2025-12-04 nathanielerowe : Merge branch 'production/v10_06_00' into feature/twester_wiremod +* 2025-12-04 nathanielerowe : Update sbnd_data version to v01_35_01 +* 2025-12-04 Thomas Wester : add new fcls to support independently applying wiremod splines +* 2025-11-25 Thomas Wester : fix module typo +* 2025-11-25 Thomas Wester : fix fcl typo +* 2025-11-24 Thomas Wester : rename fcl _sbnd +* 2025-11-24 Thomas Wester : print spline info for splines separately +* 2025-11-24 Thomas Wester : workflow fcls +* 2025-11-23 Thomas Wester : test build +* 2025-11-23 Thomas Wester : Merge branch 'production/v10_06_00' into feature/twester_wiremod +* 2025-11-23 Thomas Wester : initial commit +* 2025-11-17 nathanielerowe : Merge pull request #874 from SBNSoftware/release/v10_06_00_09 From 6182656f79fcf28c0713fd1b99d13b405fb31f79 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Tue, 9 Dec 2025 11:51:51 -0600 Subject: [PATCH 1350/1437] Rename ReleaseNotes10140001.md t to ReleaseNotes10140001.md --- .../{ReleaseNotes10140001.md t => ReleaseNotes10140001.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sbndcode_wiki/Releases/{ReleaseNotes10140001.md t => ReleaseNotes10140001.md} (100%) diff --git a/sbndcode_wiki/Releases/ReleaseNotes10140001.md t b/sbndcode_wiki/Releases/ReleaseNotes10140001.md similarity index 100% rename from sbndcode_wiki/Releases/ReleaseNotes10140001.md t rename to sbndcode_wiki/Releases/ReleaseNotes10140001.md From 3eb3389bb294819474aaa85982133a637bd131af Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 9 Dec 2025 14:09:26 -0500 Subject: [PATCH 1351/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2cffbf4d4..ea1c76db2 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -483,22 +483,25 @@ Data SBN Production Samples -------------------------- | Sample Description | release version | # Events | File type | Samweb definition | -| --- | --- | --- | --- | --- | -| Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | +| --- | --- | --- | --- | --- | SBND_DATA_FullRun1_RollingSample_bnblight_Raw +| Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | raw | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | +| --- | ___ | --- | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_larcvreco1_sbnd | | --- | --- | --- | reco2 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_reco2_sbnd | | --- | --- | --- | calib tuple | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_caf_sbnd | | --- | --- | --- | flat caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_flatcaf_sbnd | -| Fall25 Validation - FullRun1 - RollingDev - bnblight - DNN | v10_10_03_02 | ~75k | decode | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_decode_sbnd | +| Fall25 Validation - FullRun1 - RollingDev - bnblight - DNN | v10_10_03_02 | ~75k | raw | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | +| --- | --- | --- | decode | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_larcvreco1_sbnd | | --- | --- | --- | reco2 | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_reco2_sbnd | | --- | --- | --- | calib tuple | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_caf_sbnd | | --- | --- | --- | flat caf | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_flatcaf_sbnd | -| Fall25 Validation - FullRun1 - RollingDev - offbeamlight - DNN | v10_10_03_02 | ~40k | decode | data_MCP2025B_FullRun1_RollingDev_offbeamlight_offbeamlight_v10_10_03_02_decode_sbnd | +| Fall25 Validation - FullRun1 - RollingDev - offbeamlight - DNN | v10_10_03_02 | ~40k | raw | SBND_DATA_FullRun1_RollingSample_offbeamlight_Raw | +| --- | --- | --- | decode | data_MCP2025B_FullRun1_RollingDev_offbeamlight_offbeamlight_v10_10_03_02_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_larcvreco1_sbnd | | --- | --- | --- | reco2 | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_reco2_sbnd | From 8c5eec0473ae69bf0fcc16070534af1fdebd0e7b Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 9 Dec 2025 14:23:53 -0500 Subject: [PATCH 1352/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 1 - 1 file changed, 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index ea1c76db2..a0959cff7 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -483,7 +483,6 @@ Data SBN Production Samples -------------------------- | Sample Description | release version | # Events | File type | Samweb definition | -| --- | --- | --- | --- | --- | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | raw | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | | --- | ___ | --- | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco1_sbnd | From bb87f956be9a7891243aff9de217c82f80c7a8f8 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 18 Dec 2025 14:28:53 -0800 Subject: [PATCH 1353/1437] Added how to join GitHub SBNSoftware in Young GIT intro Added instructions for adding GitHub users to SBNSoftware organization. --- SBNYoung/Git_Intro.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SBNYoung/Git_Intro.md b/SBNYoung/Git_Intro.md index b8e1b8c42..f16be7e88 100644 --- a/SBNYoung/Git_Intro.md +++ b/SBNYoung/Git_Intro.md @@ -12,6 +12,7 @@ Tutorial on github website: [https://docs.github.com/en/get-started/start-your-j Fun Github tutorial: [https://www.youtube.com/watch?v=mJ-qvsxPHpY](https://www.youtube.com/watch?v=mJ-qvsxPHpY) Git is a software tool to track and manage changes to your code. Github is a website to host your code, including the different versions and changes. SBND and ICARUS store their code in the SBN Software Github repository. +Having your GitHub user added to the SBNSoftware organization enables people to tag you in issues and reviews; the [instructions to be added are here](../AnalysisInfrastructure/github-migration-to-do-list.md). ### Repository and Branches A **repository** is a space where code is stored, like a folder. **Remote repositories** are stored online, and multiple people can access them. **Local repositories** are stored on your local computer. Most of the time, you will make changes to a remote repository by first developing and testing those changes in a local copy of the repository. The repository can hold multiple **branches**, which are different working areas that modify a base version of the code. For example, a feature branch is used to create, develop, and test new features for code. There is typically one branch, called "master" or "develop", which represents the current version of the code used in production. People will base their feature branches off the master branch. From 17468fb9a515b75ed64da782a5b0c8b805a30e20 Mon Sep 17 00:00:00 2001 From: Seokju Chung Date: Tue, 23 Dec 2025 13:11:13 -0500 Subject: [PATCH 1354/1437] Add reprocessing for Spring25 - BNB + Cosmics 1e20 POT reco2 --- sbn/sbnprod_wiki/sample.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a0959cff7..0227a4976 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -95,7 +95,8 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | larcv | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| Spring25 - BNB + Cosmics 1e20 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~6.8M | reco1 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| Spring25 - BNB + Cosmics 1e20 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~6.8M | reco1 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | reco2 | mc_MCP2025B_1e20_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_recover | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | From 3dee4f533bfd0037b2be4102591f6cd55bbc1029 Mon Sep 17 00:00:00 2001 From: Seokju Chung Date: Tue, 23 Dec 2025 13:20:01 -0500 Subject: [PATCH 1355/1437] Remove Spring25 - BNB + Cosmics 1e20 POT reco2 recover entry from sample.md --- sbn/sbnprod_wiki/sample.md | 1 - 1 file changed, 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 0227a4976..286c2af7c 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -96,7 +96,6 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | reco2 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | Spring25 - BNB + Cosmics 1e20 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~6.8M | reco1 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025B_1e20_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd_recover | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | From 7c71995a981a7cd897a0b1ee623fe1d5326c2683 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 6 Jan 2026 15:59:54 -0500 Subject: [PATCH 1356/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 286c2af7c..56e2e6fb4 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -63,6 +63,11 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| Fall Production 2025 - BNB Light - 2e19 POT | SBND2025C | v10_14_02 | ~1M | reco1 | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_reco1_sbnd | +| --- | --- | --- | --- | larcv | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_larcvreco1_sbnd | +| --- | --- | --- | --- | calib ntuple | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_histreco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_flatcaf_sbnd | | Fall25 Validation - Intime - DNN | MC2025B | v10_10_03_02 | ~80k | reco1 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | @@ -205,10 +210,10 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | caf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_caf_flat_caf_sbnd | + ### ICARUS MC -------------------------- - | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | | NuMI neutrino + cosmics | MC2025A | v09_89_01_02p02 | 200k | stage1 | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_stage1 | @@ -483,6 +488,18 @@ Data SBN Production Samples -------------------------- | Sample Description | release version | # Events | File type | Samweb definition | +| Fall Production 2025 - Run 1 - BNB Dev | SBND2025C | v10_14_02 | ~3.5k files | raw | SBND_DATA_Run1_DevSample_bnblight_Raw | +| --- | --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_reco1_sbnd | +| --- | --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_larcvreco1_sbnd | +| --- | --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd | +| --- | --- | --- | --- | caf | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_caf_sbnd | +| --- | --- | --- | --- | flatcaf | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_flatcaf_sbnd | +| Fall Production 2025 - Run 1 - Intime Dev | SBND2025C | v10_14_02 | ~1.5k files | raw | SBND_DATA_Run1_DevSample_offbeamlight_Raw | +| --- | --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_reco1_sbnd | +| --- | --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_larcvreco1_sbnd | +| --- | --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd | +| --- | --- | --- | --- | caf | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd | +| --- | --- | --- | --- | flatcaf | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd | | Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | raw | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | | --- | ___ | --- | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco1_sbnd | From 5d581464718d48d541a45438193b37eb0668c8c8 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 6 Jan 2026 16:48:44 -0500 Subject: [PATCH 1357/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 56e2e6fb4..2a8f540b5 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -68,6 +68,11 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib ntuple | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_histreco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_flatcaf_sbnd | +| Fall25 Validation II - BNB Light - 1e19 POT | MC2025B | | ~600k | reco1 | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_gen_g4_detsim_reco1_sbnd | +| --- | --- | --- | --- | larcv | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | +| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_caf_flat_caf_sbnd | | Fall25 Validation - Intime - DNN | MC2025B | v10_10_03_02 | ~80k | reco1 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | @@ -500,6 +505,18 @@ Data SBN Production Samples | --- | --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd | | --- | --- | --- | --- | caf | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd | | --- | --- | --- | --- | flatcaf | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd | +| Fall25 Validation II - Run 1 - Intime Dev | SBND2025C | v10_14_02 | ~1.5k files | raw | SBND_DATA_FallValidationII_RollingDev_bnblight_Raw_Nov2025 | +| --- | --- | --- | --- | reco1 | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_reco1_sbnd | +| --- | --- | --- | --- | larcv | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_larcvreco1_sbnd | +| --- | --- | --- | --- | calib ntuple | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_histreco2_sbnd | +| --- | --- | --- | --- | caf | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_caf_sbnd | +| --- | --- | --- | --- | flatcaf | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_flatcaf_sbnd | +| Fall25 Validation II - Run 1 - Intime Rolling Dev | SBND2025C | v10_14_02 | ~700 files | raw | SBND_DATA_FallValidationII_RollingDev_offbeamlight_Raw_Nov2025 | +| --- | --- | --- | --- | reco1 | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_reco1_sbnd | +| --- | --- | --- | --- | larcv | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_larcvreco1_sbnd | +| --- | --- | --- | --- | calib ntuple | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_histreco2_sbnd | +| --- | --- | --- | --- | caf | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_caf_sbnd | +| --- | --- | --- | --- | flatcaf | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_flatcaf_sbnd | | Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | raw | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | | --- | ___ | --- | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco1_sbnd | From ff707534f38abb9e4e49c272522c1b6ecbc37c68 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 6 Jan 2026 17:15:44 -0500 Subject: [PATCH 1358/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2a8f540b5..f084078cd 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -546,11 +546,6 @@ Data SBN Production Samples | --- | --- | --- | larcv | data_MCP2025B_DNNROI_bnblight_v10_09_00_larcvreco1_sbnd | | --- | --- | --- | reco2 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco2_sbnd | | --- | --- | --- | calib tuple | data_MCP2025B_DNNROI_bnblight_v10_09_00_histreco2_sbnd | -| DNN ROI + low-trad threshold | v10_06_00 | ~30k | decode | data_MCP2025B_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_decode_sbnd | -| --- | v10_09_00 | --- | reco1 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco1_sbnd | -| --- | --- | --- | larcv | data_MCP2025B_DNNROI_bnblight_v10_09_00_larcvreco1_sbnd | -| --- | --- | --- | reco2 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco2_sbnd | -| --- | --- | --- | calib tuple | data_MCP2025B_DNNROI_bnblight_v10_09_00_histreco2_sbnd | | Crossing Muon afterlight trigger | v10_06_03 | ~30k | raw | sbnd_CrossingMuon_FullRun1_AfterLight_raw | | --- | --- | --- | decode | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_reco1_sbnd | From b7200cdcbb85e41e6520b1652432d5bca56832df Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 6 Jan 2026 18:21:28 -0500 Subject: [PATCH 1359/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index f084078cd..fd87564f0 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -492,7 +492,8 @@ Data SBN Production Samples ### SBND DATA -------------------------- -| Sample Description | release version | # Events | File type | Samweb definition | +| Sample Description | production push | release version | # Events | File type | Samweb definition | +| --- | --- | --- | --- | --- | --- | | Fall Production 2025 - Run 1 - BNB Dev | SBND2025C | v10_14_02 | ~3.5k files | raw | SBND_DATA_Run1_DevSample_bnblight_Raw | | --- | --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_reco1_sbnd | | --- | --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_larcvreco1_sbnd | From 73b3c50d3c3d0a72b0e1daa13d505bb6715673cf Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 7 Jan 2026 09:16:08 -0500 Subject: [PATCH 1360/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 52 +++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index fd87564f0..82b189c40 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -492,32 +492,32 @@ Data SBN Production Samples ### SBND DATA -------------------------- -| Sample Description | production push | release version | # Events | File type | Samweb definition | -| --- | --- | --- | --- | --- | --- | -| Fall Production 2025 - Run 1 - BNB Dev | SBND2025C | v10_14_02 | ~3.5k files | raw | SBND_DATA_Run1_DevSample_bnblight_Raw | -| --- | --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_reco1_sbnd | -| --- | --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_larcvreco1_sbnd | -| --- | --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd | -| --- | --- | --- | --- | caf | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_caf_sbnd | -| --- | --- | --- | --- | flatcaf | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_flatcaf_sbnd | -| Fall Production 2025 - Run 1 - Intime Dev | SBND2025C | v10_14_02 | ~1.5k files | raw | SBND_DATA_Run1_DevSample_offbeamlight_Raw | -| --- | --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_reco1_sbnd | -| --- | --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_larcvreco1_sbnd | -| --- | --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd | -| --- | --- | --- | --- | caf | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd | -| --- | --- | --- | --- | flatcaf | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd | -| Fall25 Validation II - Run 1 - Intime Dev | SBND2025C | v10_14_02 | ~1.5k files | raw | SBND_DATA_FallValidationII_RollingDev_bnblight_Raw_Nov2025 | -| --- | --- | --- | --- | reco1 | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_reco1_sbnd | -| --- | --- | --- | --- | larcv | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_larcvreco1_sbnd | -| --- | --- | --- | --- | calib ntuple | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_histreco2_sbnd | -| --- | --- | --- | --- | caf | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_caf_sbnd | -| --- | --- | --- | --- | flatcaf | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_flatcaf_sbnd | -| Fall25 Validation II - Run 1 - Intime Rolling Dev | SBND2025C | v10_14_02 | ~700 files | raw | SBND_DATA_FallValidationII_RollingDev_offbeamlight_Raw_Nov2025 | -| --- | --- | --- | --- | reco1 | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_reco1_sbnd | -| --- | --- | --- | --- | larcv | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_larcvreco1_sbnd | -| --- | --- | --- | --- | calib ntuple | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_histreco2_sbnd | -| --- | --- | --- | --- | caf | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_caf_sbnd | -| --- | --- | --- | --- | flatcaf | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_flatcaf_sbnd | +| Sample Description | release version | # Events | File type | Samweb definition | +| --- | --- | --- | --- | --- | +| Fall Production 2025 - Run 1 - BNB Dev | v10_14_02 | ~3.5k files | raw | SBND_DATA_Run1_DevSample_bnblight_Raw | +| --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_larcvreco1_sbnd | +| --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_flatcaf_sbnd | +| Fall Production 2025 - Run 1 - Intime Dev | v10_14_02 | ~1.5k files | raw | SBND_DATA_Run1_DevSample_offbeamlight_Raw | +| --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_larcvreco1_sbnd | +| --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd | +| Fall25 Validation II - Run 1 - Intime Dev | v10_14_02 | ~1.5k files | raw | SBND_DATA_FallValidationII_RollingDev_bnblight_Raw_Nov2025 | +| --- | --- | --- | reco1 | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_larcvreco1_sbnd | +| --- | --- | --- | calib ntuple | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025C_FallValidationII_RollingDev_bnblight_v10_14_00_flatcaf_sbnd | +| Fall25 Validation II - Run 1 - Intime Rolling Dev | v10_14_02 | ~700 files | raw | SBND_DATA_FallValidationII_RollingDev_offbeamlight_Raw_Nov2025 | +| --- | --- | --- | reco1 | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_larcvreco1_sbnd | +| --- | --- | --- | calib ntuple | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_flatcaf_sbnd | | Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | raw | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | | --- | ___ | --- | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco1_sbnd | From 168824d3fb1f87e7555e42ecf58d39fe6b7e25f2 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 7 Jan 2026 10:14:46 -0500 Subject: [PATCH 1361/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 82b189c40..122de3051 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -519,34 +519,23 @@ Data SBN Production Samples | --- | --- | --- | caf | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025C_FallValidationII_RollingDev_offbeamlight_v10_14_00_flatcaf_sbnd | | Fall25 Validation - FullRun1 - RollingDev - bnblight | v10_10_03_01 | ~75k | raw | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | -| --- | ___ | --- | decode | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_v10_10_03_01_larcvreco1_sbnd | -| --- | --- | --- | reco2 | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_reco2_sbnd | | --- | --- | --- | calib tuple | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_caf_sbnd | | --- | --- | --- | flat caf | data_MCP2025B_noPOT_FullRun1_RollingDev_bnblight_bnblight_v10_10_03_01_flatcaf_sbnd | | Fall25 Validation - FullRun1 - RollingDev - bnblight - DNN | v10_10_03_02 | ~75k | raw | SBND_DATA_FullRun1_RollingSample_bnblight_Raw | -| --- | --- | --- | decode | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_larcvreco1_sbnd | -| --- | --- | --- | reco2 | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_reco2_sbnd | | --- | --- | --- | calib tuple | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_caf_sbnd | | --- | --- | --- | flat caf | data_MCP2025B_FullRun1_RollingDev_DNN_bnblight_v10_10_03_02_flatcaf_sbnd | | Fall25 Validation - FullRun1 - RollingDev - offbeamlight - DNN | v10_10_03_02 | ~40k | raw | SBND_DATA_FullRun1_RollingSample_offbeamlight_Raw | -| --- | --- | --- | decode | data_MCP2025B_FullRun1_RollingDev_offbeamlight_offbeamlight_v10_10_03_02_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_larcvreco1_sbnd | -| --- | --- | --- | reco2 | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_reco2_sbnd | | --- | --- | --- | calib tuple | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_caf_sbnd | | --- | --- | --- | flat caf | data_MCP2025B_FullRun1_RollingDev_offbeamlight_v10_10_03_02_flatcaf_sbnd | -| DNN ROI + low-trad threshold | v10_06_00 | ~30k | decode | data_MCP2025B_DevSample_Run1Rolling_5e18_bnblight_v10_06_00_decode_sbnd | -| --- | v10_09_00 | --- | reco1 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco1_sbnd | -| --- | --- | --- | larcv | data_MCP2025B_DNNROI_bnblight_v10_09_00_larcvreco1_sbnd | -| --- | --- | --- | reco2 | data_MCP2025B_DNNROI_bnblight_v10_09_00_reco2_sbnd | -| --- | --- | --- | calib tuple | data_MCP2025B_DNNROI_bnblight_v10_09_00_histreco2_sbnd | | Crossing Muon afterlight trigger | v10_06_03 | ~30k | raw | sbnd_CrossingMuon_FullRun1_AfterLight_raw | | --- | --- | --- | decode | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_reco1_sbnd | From 95ff8025a6f89abbfa9b89ce4f1acdd6850744d9 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 7 Jan 2026 14:48:35 -0500 Subject: [PATCH 1362/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 122de3051..43c0f43fb 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -113,6 +113,9 @@ Monte Carlo official SBN Production Samples | --- | --- | v10_06_00_05 | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025B_1e20_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025C_1e20_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025C_1e20_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics 1e20 POT (500 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~2.2M | reco1 | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | @@ -121,6 +124,9 @@ Monte Carlo official SBN Production Samples | --- | --- | v10_06_00_05 | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025B_1e20_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025B_1e20__v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20__v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics 5e18 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00 | ~170k | reco1 | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | v10_06_00_02 | --- | reco2 | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | @@ -166,6 +172,9 @@ Monte Carlo official SBN Production Samples | Spring25 - Nue CC | MC2025B | v10_06_02 | 556k | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_reco1_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_caf_flat_caf_sbnd | +| --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_reco2_sbnd | +| --- | --- | --- | --- | caf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_flat_caf_sbnd | | Spring25 validation - BNB + Cosmics (100 events p/ file pre-filter) | MC2025A | v10_04_06_01 | 260k | reco1 | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | @@ -556,6 +565,9 @@ Data SBN Production Samples | --- | --- | --- | calib tuple | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_flatcaf_sbnd | +| --- | v10_06_00_09 | --- | calib tuple | data_MCP2025C_Spring25_reprocess_Dev1e20_bnblight_v10_06_00_09_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025C_Spring25_reprocess_Dev1e20_bnblight_v10_06_00_09_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025C_Spring25_reprocess_Dev1e20_bnblight_v10_06_00_09_flatcaf_sbnd | | Spring25 - Intime Cosmics | v10_06_00 | ~k | raw | SBND_DATA_InTime-Cosmic_Raw_Snapshot-20250527 | | --- | --- | --- | decode | data_MCP2025B_InTimeCosmics_offbeamlight_v10_06_00_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_InTimeCosmics_offbeamlight_v10_06_00_reco1_sbnd | @@ -568,6 +580,9 @@ Data SBN Production Samples | --- | --- | --- | calib tuple | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_05_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_05_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_02_InTimeCosmics_offbeamlight_v10_06_00_05_flatcaf_sbnd | +| --- | v10_06_00_09 | --- | calib tuple | data_MCP2025C_Spring25_reprocess_Intime_offbeamlight_v10_06_00_09_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025C_Spring25_reprocess_Intime_offbeamlight_v10_06_00_09_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025C_Spring25_reprocess_Intime_offbeamlight_v10_06_00_09_flatcaf_sbnd | | Spring25 - fixed DevSample (5e18 POT)| v10_06_00 | ~90k | raw | SBND_DATA_DevSample_Raw_Mar2025 | | --- | --- | --- | decode | data_MCP2025B_DevSample_bnblight_v10_06_00_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_DevSample_bnblight_v10_06_00_reco1_sbnd | From c9e7d42545e70adacee4d9a78cbc0908f439aca9 Mon Sep 17 00:00:00 2001 From: Seokju Chung Date: Thu, 8 Jan 2026 09:56:13 -0500 Subject: [PATCH 1363/1437] Remove datasets which were cleaned up for disk space in anticipation for 2025 Fall Production --- sbn/sbnprod_wiki/sample.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 43c0f43fb..1e228a766 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -73,21 +73,17 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_caf_flat_caf_sbnd | -| Fall25 Validation - Intime - DNN | MC2025B | v10_10_03_02 | ~80k | reco1 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| Fall25 Validation - Intime - DNN | MC2025B | v10_10_03_02 | ~80k | larcv | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Fall25 Validation - BNB+Cosmics - DNN | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd| | --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Fall25 Validation - BNB+Cosmics | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flat caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | From b443cc1c051705c95abf550f177e33d313769749 Mon Sep 17 00:00:00 2001 From: Sayan Kr Das <190397255+cyanDash@users.noreply.github.com> Date: Fri, 9 Jan 2026 13:37:33 +0000 Subject: [PATCH 1364/1437] Remove DNN ROI + low-trad threshold entry Removed DNN ROI + low-trad threshold entry from the table. --- sbn/sbnprod_wiki/sample.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 1e228a766..ad3878726 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -97,10 +97,6 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | -| DNN ROI + low-trad threshold (100 events p/ file pre-filter) | MC2025B | v10_09_00 | 30k | reco1 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_DNNROI_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | Spring25 - BNB + Cosmics 1e20 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~6.8M | reco1 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | From 3317f330cd50748a56c3fa5059804230b630fb5b Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 12 Jan 2026 15:16:27 -0500 Subject: [PATCH 1365/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index ad3878726..a4a18dc21 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -89,12 +89,10 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | flat caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Low Energy 1-100MeV | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | reco2 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | -| --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics 1e20 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~6.8M | reco1 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | @@ -121,12 +119,10 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20__v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics 5e18 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00 | ~170k | reco1 | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | v10_06_00_02 | --- | reco2 | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| --- | --- | v10_06_00_04 | --- | reco2 | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_04 | --- | calib tuple | hist_mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | @@ -135,8 +131,7 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics 5e18 POT (500 events p/ file pre-filter) | MC2025B | v10_06_00 | ~290k | reco1 | mc_MCP2025B_5e18_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_5e18_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | v10_06_00_02 | --- | reco2 | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | @@ -148,8 +143,7 @@ Monte Carlo official SBN Production Samples | --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | +| --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics (500 events p/ file pre-filter) | MC2025B | v10_06_00 | ~510k | reco1 | mc_MCP2025B_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | From 0ab3f1d244a57272c9f4aa3b9214a3d4aa83bdb3 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 13 Jan 2026 11:35:01 -0500 Subject: [PATCH 1366/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a4a18dc21..4fa245262 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -489,13 +489,19 @@ Data SBN Production Samples | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | -| Fall Production 2025 - Run 1 - BNB Dev | v10_14_02 | ~3.5k files | raw | SBND_DATA_Run1_DevSample_bnblight_Raw | +| Run2 - gen1 (spring 2025) - BNB+light Fixed Dev | v10_06_00_09 | ~2k files | raw | SBND_DATA_Run2_FixedDev_Raw | +| --- | --- | --- | reco1 | data_MCP2025C_Spring25-Run2_FixedDev_bnblight_v10_06_00_09_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025C_Spring25-Run2_FixedDev_bnblight_v10_06_00_09_larcvreco1_sbnd | +| --- | --- | --- | calib ntuple | data_MCP2025C_Spring25-Run2_FixedDev_bnblight_v10_06_00_09_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025C_Spring25-Run2_FixedDev_bnblight_v10_06_00_09_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025C_Spring25-Run2_FixedDev_bnblight_v10_06_00_09_flatcaf_sbnd | +| Fall Production 2025 (gen2) - Run 1 - BNB Dev | v10_14_02 | ~3.5k files | raw | SBND_DATA_Run1_DevSample_bnblight_Raw | | --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_larcvreco1_sbnd | | --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd | | --- | --- | --- | caf | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_flatcaf_sbnd | -| Fall Production 2025 - Run 1 - Intime Dev | v10_14_02 | ~1.5k files | raw | SBND_DATA_Run1_DevSample_offbeamlight_Raw | +| Fall Production 2025 (gen2) - Run 1 - Intime Dev | v10_14_02 | ~1.5k files | raw | SBND_DATA_Run1_DevSample_offbeamlight_Raw | | --- | --- | --- | reco1 | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_reco1_sbnd | | --- | --- | --- | larcv | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_larcvreco1_sbnd | | --- | --- | --- | calib ntuple | data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd | From 8d5b72e13f6e971acbb83ec858c2e4543c7f5b72 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 13 Jan 2026 17:32:30 -0500 Subject: [PATCH 1367/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 40 -------------------------------------- 1 file changed, 40 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 4fa245262..059d1cd22 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -89,68 +89,38 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | flat caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Low Energy 1-100MeV | MC2025B | v10_06_00_05 | ~1.8M | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_lowenergydirt_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics 1e20 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~6.8M | reco1 | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| --- | --- | v10_06_00_05 | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_05_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025B_1e20_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_1e20_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025C_1e20_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics 1e20 POT (500 events p/ file pre-filter) | MC2025B | v10_06_00_02 | ~2.2M | reco1 | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | -| --- | --- | v10_06_00_05 | --- | calib tuple | hist_mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20_05_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025B_1e20_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_1e20__v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_1e20__v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics 5e18 POT (100 events p/ file pre-filter) | MC2025B | v10_06_00 | ~170k | reco1 | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_5e18_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| --- | --- | v10_06_00_04 | --- | calib tuple | hist_mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_04_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics 5e18 POT (500 events p/ file pre-filter) | MC2025B | v10_06_00 | ~290k | reco1 | mc_MCP2025B_5e18_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_5e18_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_5e18_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - BNB + Cosmics (100 events p/ file pre-filter) | MC2025B | v10_06_00 | ~680k | reco1 | mc_MCP2025B_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_02_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025B_v10_06_00_09_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | | Spring25 - Intime Cosmics (500 events p/ file pre-filter) | MC2025B | v10_06_00 | ~510k | reco1 | mc_MCP2025B_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025B_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | v10_06_00_02 | --- | calib tuple | hist_mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025B_02_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | reco2 | mc_MCP2025B_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025B_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025B_v10_06_00_09_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | @@ -161,16 +131,6 @@ Monte Carlo official SBN Production Samples | --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_flat_caf_sbnd | -| Spring25 validation - BNB + Cosmics (100 events p/ file pre-filter) | MC2025A | v10_04_06_01 | 260k | reco1 | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025Av3_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| Spring25 validation - Intime Cosmics (500 events p/ file pre-filter) | MC2025A | v10_04_06_01 | 240k | reco1 | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | -| --- | --- | --- | --- | caf | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025Av3_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | | Feb25 Workshop - BNB + Cosmics | MC2025A | v10_04_03 | 60k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_sbnd | From 75e010bbf3099893b678f8cd280ece5f705d0698 Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:51:28 +0200 Subject: [PATCH 1368/1437] Update RM instructions Now with `SBN_SUITE` tags. --- AnalysisInfrastructure/ReleaseManagement/rm_instructions.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md b/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md index 159918321..cbe3ba0a2 100644 --- a/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md +++ b/AnalysisInfrastructure/ReleaseManagement/rm_instructions.md @@ -68,7 +68,8 @@ Different release instructions for: ### Finalize the tag. 1. In your testing area, in each repo do `git flow release finish`. Make sure to include a message for the tag. -2. Do `git push origin main develop --tags` to push up the changes to main, develop, and the new tag. +2. Make tags for each of `sbncode`, `sbnalg`, `sbnanaobj`, and `sbnobj` called `SBN_SUITE_v`. For example, if you're cutting a release for sbncode v10_14_02, all four repositories should have the `SBN_SUITE_v10_14_02` tag. This is important for CI. +3. Do `git push origin main develop --tags` to push up the changes to main (master on `sbnalg`), develop, and the new tags. ### Distribute software. #### SciSoft: From b260594cbbaacd743f4b1a2e32f990009afb1a2d Mon Sep 17 00:00:00 2001 From: John Plows <70749581+kjplows@users.noreply.github.com> Date: Fri, 16 Jan 2026 16:53:45 +0200 Subject: [PATCH 1369/1437] Update list of SBN code releases --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index a3fe539ba..37e02ba9a 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,12 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v10_14_02_01` | 'sbncode' patch release | to be written +`v10_14_02` | 'sbncode' feature release | to be written +`v10_06_00_10` | 'sbncode' production patch release | to be written +`v10_14_00` | 'sbncode' feature release | to be written +`v10_06_00_09` | 'sbncode' production patch release | to be written +`v10_06_00_08` | 'sbncode' production release | to be written 'sbnana' `v10_01_03` | 'sbnana' release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v10_01_03) `v10_11_01` | 'sbncode' feature release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_11_01) `v10_10_05` | 'sbncode' feature release | [Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v10_10_05) From 247c87cc24e2539fbc068ed413410a605d91f724 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:55:07 -0600 Subject: [PATCH 1370/1437] Add release notes for sbndcode v10.14.02.01 Added release notes for sbndcode v10.14.02.01, including new features, bug fixes, and a change list. --- .../Releases/ReleaseNotes10140201.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10140201.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10140201.md b/sbndcode_wiki/Releases/ReleaseNotes10140201.md new file mode 100644 index 000000000..6b0d04b51 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10140201.md @@ -0,0 +1,80 @@ +--- +layout: page +title: ReleaseNotes10140201 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.14.02.01 | 16 Jan 2026 | [ReleaseNotes](ReleaseNotes10140201.html) | +| --- | --- | --- | + + + +sbndcode v10_14_02_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_14_02_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_14_02_01/sbndcode-v10_14_02_01.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_14_02 to v10_14_02_01 +- PR #897: feature/pandora_electron_merge + - **Description**: + - **Labels**: reco1/reco2 + - **Reviewers**: + - **Assignees**: AndyChappell +- PR #894: build changes for spack package + - **Description**: + - **Labels**: bug + - **Reviewers**: + - **Assignees**: +- PR #895: Drop MonPulses and MonPulseSizes starting at reco1 level + - **Description**: These changes just drop the MonPulse products from the reco1 files to make them lighter. + - **Labels**: bug + - **Reviewers**: + - **Assignees**: npallat +- PR #892: New CAF stage fcl for MeVPrtl generator + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: caf + - **Reviewers**: + - **Assignees**: VCLanNguyen, jorge-romeo + +sbndcode sbndcode +--------------------------------------------------- + +* 2026-01-16 Nathaniel : Merge branch 'release/v10_14_02_01' +* 2026-01-16 Nathaniel : Update to larsoft v10_14_02_01 +* 2026-01-16 nathanielerowe : Merge pull request #892 from SBNSoftware/feature/CAF_fcl_for_MeVPRTL +* 2026-01-16 nathanielerowe : Merge branch 'develop' into feature/CAF_fcl_for_MeVPRTL +* 2026-01-16 nathanielerowe : Merge pull request #895 from SBNSoftware/feature/TriggerWorkNikki-PR +* 2026-01-16 nathanielerowe : Merge branch 'develop' into feature/CAF_fcl_for_MeVPRTL +* 2026-01-16 nathanielerowe : Merge branch 'develop' into feature/TriggerWorkNikki-PR +* 2026-01-16 nathanielerowe : Merge pull request #894 from SBNSoftware/bugfix/spack_patch +* 2026-01-16 nathanielerowe : Merge branch 'develop' into bugfix/spack_patch +* 2026-01-16 nathanielerowe : Merge pull request #897 from AndyChappell/feature/pandora_electron_merge +* 2026-01-13 nathanielerowe : Merge branch 'develop' into feature/CAF_fcl_for_MeVPRTL +* 2026-01-13 nathanielerowe : Merge branch 'develop' into feature/TriggerWorkNikki-PR +* 2026-01-12 AndyChappell : Update track and shower characterisation following potential electron merges +* 2026-01-12 AndyChappell : Add algorithm to merge MIP-like stub and shower cascade of split primary electrons +* 2026-01-07 Nikki Pallat : Drop MonPulses and MonPulseSizes starting at reco1 level +* 2026-01-02 nathanielerowe : Add include directory for OnlineEvd module +* 2026-01-02 nathanielerowe : Add HDF5 and hep_hpc package requirements +* 2025-12-17 Nathaniel : Merge tag 'v10_14_02' into develop +* 2025-12-12 jorge-romeo : New fcl for CAF stage without systtools to use it on files generated with MeVPrtl generator. From 930557833047bdcf72982428273ccd1d18c03ba8 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 21 Jan 2026 10:23:12 -0500 Subject: [PATCH 1371/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 059d1cd22..2b52cca0c 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -77,13 +77,11 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_prodcorsika_proton_intime_sbnd_CV_caf_flat_caf_sbnd | -| Fall25 Validation - BNB+Cosmics - DNN | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_sbnd| -| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | +| Fall25 Validation - BNB+Cosmics - DNN | MC2025B | v10_10_03_02 | ~450k | larcv | mc_MCP2025_FallValidation_prodgenie_corsika_proton_rockbox_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025_FallValidation_DNN_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | -| Fall25 Validation - BNB+Cosmics | MC2025B | v10_10_03_02 | ~450k | reco1 | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_sbnd | -| --- | --- | --- | --- | larcv | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_larcv_sbnd | +| Fall25 Validation - BNB+Cosmics | MC2025B | v10_10_03_02 | ~450k | larcv | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flat caf | mc_MCP2025_FallValidation_trad_prodgenie_corsika_proton_rockbox_sbnd_CV_caf_flat_caf_sbnd | From ce2bd07636e73a4a1dc5b1c021d845ef23397695 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 21 Jan 2026 14:42:50 -0500 Subject: [PATCH 1372/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2b52cca0c..6d3bb3fb7 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -63,11 +63,19 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | -| Fall Production 2025 - BNB Light - 2e19 POT | SBND2025C | v10_14_02 | ~1M | reco1 | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_reco1_sbnd | +| Fall Production 2025 (gen2) - BNB Light - 2e19 POT | SBND2025C | v10_14_02 | ~1M | reco1 | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_larcvreco1_sbnd | | --- | --- | --- | --- | calib ntuple | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_histreco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_flatcaf_sbnd | +| Spring25 (gen1) BNB+Cosmics Syst Variations - CV | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_CV_caf_flat_caf_sbnd | +| Spring25 (gen1) BNB+Cosmics Syst Variations - No SCE | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_0xSCE_caf_flat_caf_sbnd | +| Spring25 (gen1) BNB+Cosmics Syst Variations - 2x SCE | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_2xSCE_caf_flat_caf_sbnd | +| Spring25 (gen1) BNB+Cosmics Syst Variations - PMT Gain | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTGainFluct_caf_flat_caf_sbnd | +| Spring25 (gen1) BNB+Cosmics Syst Variations - PMT QE | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTLowEff_caf_flat_caf_sbnd | +| Spring25 (gen1) BNB+Cosmics Syst Variations - PMT High SPE Noise | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTHighNoise_caf_flat_caf_sbnd | +| Spring25 (gen1) BNB+Cosmics Syst Variations - WireMod X-θXW | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_WireMod_XThetaXW_caf_flat_caf_sbnd | +| Spring25 (gen1) BNB+Cosmics Syst Variations - WireMod Y-Z | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_WireMod_YZ_caf_flat_caf_sbnd | | Fall25 Validation II - BNB Light - 1e19 POT | MC2025B | | ~600k | reco1 | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_reco2_sbnd | From fff9664ce613bb0bd2d113305485f363ce61f13c Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 21 Jan 2026 14:55:09 -0500 Subject: [PATCH 1373/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 6d3bb3fb7..b7ab693c5 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -68,14 +68,14 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib ntuple | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_histreco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_flatcaf_sbnd | -| Spring25 (gen1) BNB+Cosmics Syst Variations - CV | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_CV_caf_flat_caf_sbnd | -| Spring25 (gen1) BNB+Cosmics Syst Variations - No SCE | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_0xSCE_caf_flat_caf_sbnd | -| Spring25 (gen1) BNB+Cosmics Syst Variations - 2x SCE | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_2xSCE_caf_flat_caf_sbnd | -| Spring25 (gen1) BNB+Cosmics Syst Variations - PMT Gain | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTGainFluct_caf_flat_caf_sbnd | -| Spring25 (gen1) BNB+Cosmics Syst Variations - PMT QE | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTLowEff_caf_flat_caf_sbnd | -| Spring25 (gen1) BNB+Cosmics Syst Variations - PMT High SPE Noise | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTHighNoise_caf_flat_caf_sbnd | -| Spring25 (gen1) BNB+Cosmics Syst Variations - WireMod X-θXW | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_WireMod_XThetaXW_caf_flat_caf_sbnd | -| Spring25 (gen1) BNB+Cosmics Syst Variations - WireMod Y-Z | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_WireMod_YZ_caf_flat_caf_sbnd | +| Spring25 (gen1) BNB+Cosmics - Syst Variations - CV | MC2025B | v10_06_00_10 | ~170k | flatcaf | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_CV_caf_flat_caf_sbnd | +| Syst Variations - No SCE | --- | --- | --- | --- | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_0xSCE_caf_flat_caf_sbnd | +| Syst Variations - 2x SCE | --- | --- | --- | --- | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_2xSCE_caf_flat_caf_sbnd | +| Syst Variations - PMT Gain | --- | --- | --- | --- | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTGainFluct_caf_flat_caf_sbnd | +| Syst Variations - PMT QE | --- | --- | --- | --- | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTLowEff_caf_flat_caf_sbnd | +| Syst Variations - PMT High SPE Noise | --- | --- | --- | --- | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_PMTHighNoise_caf_flat_caf_sbnd | +| Syst Variations - WireMod X-θXW | --- | --- | --- | --- | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_WireMod_XThetaXW_caf_flat_caf_sbnd | +| Syst Variations - WireMod Y-Z | --- | --- | --- | --- | mc_MCP2025B_1e20_10_prodgenie_corsika_proton_rockbox_sbnd_SystVar_WireMod_YZ_caf_flat_caf_sbnd | | Fall25 Validation II - BNB Light - 1e19 POT | MC2025B | | ~600k | reco1 | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_mc_MCP2025C_FallValidationII_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_reco2_sbnd | From d6575c556fd7e5cb1046039d14c2a6fd08c41d5c Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 26 Jan 2026 12:58:55 -0600 Subject: [PATCH 1374/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index b7ab693c5..2eb30eba5 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -179,7 +179,7 @@ Monte Carlo official SBN Production Samples ### ICARUS MC -------------------------- - +* NuMI neutrino + cosmics Central Value sample | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | | NuMI neutrino + cosmics | MC2025A | v09_89_01_02p02 | 200k | stage1 | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_stage1 | @@ -187,6 +187,14 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_caf | | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_flatcaf | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_larcv | + +* NuMI neutrino + cosmics det var samples (Scrub stage: +| NuMI DetSyst - High Gain Var | MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | +| --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_caf | +| --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_flatcaf | +| --- | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_larcv | + + | BNB neutrino + cosmics (Respun CV) | MC2024A | v09_89_01_02p01 | 200k | stage1 | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_calibtuple | | --- | --- | --- | --- | caf | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_caf | From 9d636a8bad589237cdbdc75183b479ae85898564 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 26 Jan 2026 13:05:56 -0600 Subject: [PATCH 1375/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2eb30eba5..33f8fb23b 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -180,6 +180,7 @@ Monte Carlo official SBN Production Samples ### ICARUS MC -------------------------- * NuMI neutrino + cosmics Central Value sample + | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | | NuMI neutrino + cosmics | MC2025A | v09_89_01_02p02 | 200k | stage1 | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_stage1 | @@ -188,7 +189,8 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | flatcaf | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_flatcaf | | --- | --- | --- | --- | larcv | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_CV_larcv | -* NuMI neutrino + cosmics det var samples (Scrub stage: +* NuMI neutrino + cosmics det var samples (Scrub stage: + | NuMI DetSyst - High Gain Var | MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_caf | | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_flatcaf | From 08142f1aca6f00094df109ded49ac33a1939fa0f Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 26 Jan 2026 13:46:07 -0600 Subject: [PATCH 1376/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 33f8fb23b..358d28769 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -191,10 +191,41 @@ Monte Carlo official SBN Production Samples * NuMI neutrino + cosmics det var samples (Scrub stage: -| NuMI DetSyst - High Gain Var | MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | +| NuMI DetSyst-High Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_caf | | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_flatcaf | -| --- | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_larcv | +| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_larcv | + +| NuMI DetSyst-Low Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_calibtuples | +| --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_caf| +| --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_flatcaf| +| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_larcv| + +| NuMI DetSyst-Low lifetime| MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_calibtuples| +| --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_caf| +| --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_flatcaf | +| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_larcv| + +| NuMI DetSyst-High lifetime| MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_calibtuples| +| --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_caf| +| --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_flatcaf | +| transferred to SLAC | larcv | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_larcv | + +| NuMI DetSyst- Recomb model|MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_calibtuples| +| --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_caf| +| --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_flatcaf| +| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_larcv| + +| NuMI DetSyst-High TPC Coh Noise|MC2025A|v09_89_01_02p02|200k|calibtuple| icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_calibtuples| +| --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_caf| +| --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_flatcaf| +| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_larcv| + +|NuMI DetSyst-Low TPC Coh Noise|MC2025A|v09_89_01_02p02|200k|calibtuple| icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_calibtuples| +| --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_caf| +| --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_flatcaf| +| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_larcv| + | BNB neutrino + cosmics (Respun CV) | MC2024A | v09_89_01_02p01 | 200k | stage1 | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_stage1 | From bdd37374680e5e6406fcffd85f0a475442aa3fed Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 26 Jan 2026 13:49:53 -0600 Subject: [PATCH 1377/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 358d28769..2252708e2 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -226,7 +226,10 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_flatcaf| | transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_larcv| - +|NuMI DetSyst-Hgh TPC int noise|MC2025A|v09_89_01_02p02|200k|calibtuple|icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_calibtuples| +| --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_caf| +| --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_flatcaf| +| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_larcv| | BNB neutrino + cosmics (Respun CV) | MC2024A | v09_89_01_02p01 | 200k | stage1 | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_calibtuple | From da638aee1a0aeec9c9ab399ab8a01e0ceb659221 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 26 Jan 2026 14:14:24 -0600 Subject: [PATCH 1378/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2252708e2..7a0200fc5 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -191,7 +191,7 @@ Monte Carlo official SBN Production Samples * NuMI neutrino + cosmics det var samples (Scrub stage: -| NuMI DetSyst-High Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | +| NuMI DetSyst-High Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_caf | | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_flatcaf | | transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_larcv | From 3fe463516acd8e1f627043bb8a71272e3101886a Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 26 Jan 2026 14:29:26 -0600 Subject: [PATCH 1379/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 7a0200fc5..72d4b5726 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -191,10 +191,10 @@ Monte Carlo official SBN Production Samples * NuMI neutrino + cosmics det var samples (Scrub stage: -| NuMI DetSyst-High Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | +| NuMI-High Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_caf | | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_flatcaf | -| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_larcv | +| transferred to SLAC | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_larcv | | NuMI DetSyst-Low Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_calibtuples | | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_caf| From ab4998e4f08c8506ddfce1a32e78719af6ffd748 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Mon, 26 Jan 2026 14:51:19 -0600 Subject: [PATCH 1380/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 72d4b5726..ffc4b4cac 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -191,7 +191,7 @@ Monte Carlo official SBN Production Samples * NuMI neutrino + cosmics det var samples (Scrub stage: -| NuMI-High Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | +| NuMI DetSyst -High Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_calibtuples | | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_caf | | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_flatcaf | | transferred to SLAC | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_GainHigh_V2_larcv | @@ -199,37 +199,37 @@ Monte Carlo official SBN Production Samples | NuMI DetSyst-Low Gain | MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_calibtuples | | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_caf| | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_flatcaf| -| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_larcv| +| transferred to SLAC | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Gain_Low_larcv| | NuMI DetSyst-Low lifetime| MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_calibtuples| | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_caf| | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_flatcaf | -| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_larcv| +| transferred to SLAC | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_Low_LT_larcv| | NuMI DetSyst-High lifetime| MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_calibtuples| | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_caf| | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_flatcaf | -| transferred to SLAC | larcv | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_larcv | +| transferred to SLAC | --- | --- | --- | larcv | icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_High_LT_larcv | | NuMI DetSyst- Recomb model|MC2025A | v09_89_01_02p02 | 200k | calibtuple |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_calibtuples| | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_caf| | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_flatcaf| -| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_larcv| +| transferred to SLAC | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_RecombModel_larcv| | NuMI DetSyst-High TPC Coh Noise|MC2025A|v09_89_01_02p02|200k|calibtuple| icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_calibtuples| | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_caf| | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_flatcaf| -| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_larcv| +| transferred to SLAC | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_high_larcv| |NuMI DetSyst-Low TPC Coh Noise|MC2025A|v09_89_01_02p02|200k|calibtuple| icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_calibtuples| | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_caf| | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_flatcaf| -| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_larcv| +| transferred to SLAC | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_low_larcv| |NuMI DetSyst-Hgh TPC int noise|MC2025A|v09_89_01_02p02|200k|calibtuple|icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_calibtuples| | --- | --- | --- | --- | caf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_caf| | --- | --- | --- | --- | flatcaf |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_flatcaf| -| transferred to SLAC | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_larcv| +| transferred to SLAC | --- | --- | --- | larcv |icaruspro_production_v09_89_01_02p02_2025A_NuMI_nuCos_CV_detsys_nu_cos_TPCnoice_Int_high_larcv| | BNB neutrino + cosmics (Respun CV) | MC2024A | v09_89_01_02p01 | 200k | stage1 | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_stage1 | | --- | --- | --- | --- | calibtuple | icaruspro_production_v09_89_01_02p01_2024A_ICARUS_MC_Sys_NuCos_2024A_MC_Sys_NuCos_respunCV_2ndV_calibtuple | From d9d50abbe68f72931c099bd938f4ff030793eafd Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 27 Jan 2026 16:45:11 -0500 Subject: [PATCH 1381/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index ffc4b4cac..850052450 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -556,20 +556,20 @@ Data SBN Production Samples | --- | --- | --- | caf | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_caf_sbnd | | --- | --- | --- | flatcaf | data_MCP2025B_CrossingMuon_FullRun1_AfterLight_8_crossingmuon_v10_06_03_flatcaf_sbnd | | Spring25 - BNB 1e20 POT | v10_06_00_02 | ~1.7M | raw | SBND_DATA_1e20_Raw_May2025 | -| --- | --- | --- | decode | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_decode_sbnd | -| --- | --- | --- | reco1 | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_reco1_sbnd | -| --- | --- | --- | larcv | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_larcvreco1_sbnd | -| --- | --- | --- | reco2 | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_reco2_sbnd | -| --- | --- | --- | calib tuple | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_histreco2_sbnd | -| --- | --- | --- | caf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_caf_sbnd | -| --- | --- | --- | flatcaf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_02_flatcaf_sbnd | -| --- | v10_06_00_05 | --- | reco2 | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_reco2_sbnd | -| --- | --- | --- | calib tuple | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_histreco2_sbnd | -| --- | --- | --- | caf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_caf_sbnd | -| --- | --- | --- | flatcaf | data_MCP2025B_02_DevSample_1e20_bnblight_v10_06_00_05_flatcaf_sbnd | -| --- | v10_06_00_09 | --- | calib tuple | data_MCP2025C_Spring25_reprocess_Dev1e20_bnblight_v10_06_00_09_histreco2_sbnd | -| --- | --- | --- | caf | data_MCP2025C_Spring25_reprocess_Dev1e20_bnblight_v10_06_00_09_caf_sbnd | -| --- | --- | --- | flatcaf | data_MCP2025C_Spring25_reprocess_Dev1e20_bnblight_v10_06_00_09_flatcaf_sbnd | +| --- | --- | --- | decode | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_02_decode_sbnd | +| --- | --- | --- | reco1 | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_02_reco1_sbnd | +| --- | --- | --- | larcv | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_02_larcvreco1_sbnd | +| --- | --- | --- | reco2 | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_02_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_02_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_02_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_02_flatcaf_sbnd | +| --- | v10_06_00_05 | --- | reco2 | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_05_reco2_sbnd | +| --- | --- | --- | calib tuple | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_05_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_05_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025B_02_FullData_1e20_bnblight_v10_06_00_05_flatcaf_sbnd | +| --- | v10_06_00_09 | --- | calib tuple | data_MCP2025C_Spring25_reprocess_FullData1e20_bnblight_v10_06_00_09_histreco2_sbnd | +| --- | --- | --- | caf | data_MCP2025C_Spring25_reprocess_FullData1e20_bnblight_v10_06_00_09_caf_sbnd | +| --- | --- | --- | flatcaf | data_MCP2025C_Spring25_reprocess_FullData1e20_bnblight_v10_06_00_09_flatcaf_sbnd | | Spring25 - Intime Cosmics | v10_06_00 | ~k | raw | SBND_DATA_InTime-Cosmic_Raw_Snapshot-20250527 | | --- | --- | --- | decode | data_MCP2025B_InTimeCosmics_offbeamlight_v10_06_00_decode_sbnd | | --- | --- | --- | reco1 | data_MCP2025B_InTimeCosmics_offbeamlight_v10_06_00_reco1_sbnd | From ddb1156a93c8343441af67326b17bbac82564bfd Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 2 Feb 2026 16:14:13 -0600 Subject: [PATCH 1382/1437] Add new release v10_14_02_02 to release notes --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 37afc42c3..f20a5dd16 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_14_02_02`. | Patch release | [Release Notes](ReleaseNotes10140202.md) |`v10_06_00_10`. | Patch release | [Release Notes](ReleaseNotes10060010.md) |`v10_14_00_01`. | Patch release | [Release Notes](ReleaseNotes10140001.md) |`v10_14_00`. | Major release | [Release Notes](ReleaseNotes101400.md) From bccf9712ea59dafadcd89848b02f749aac1c587c Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 2 Feb 2026 16:16:48 -0600 Subject: [PATCH 1383/1437] Create ReleaseNotes10140202.md for v10.14.02.02 Add release notes for sbndcode v10.14.02.02 including new features, bug fixes, and updated dependencies. --- .../Releases/ReleaseNotes10140202.md | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes10140202.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes10140202.md b/sbndcode_wiki/Releases/ReleaseNotes10140202.md new file mode 100644 index 000000000..1babec367 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes10140202.md @@ -0,0 +1,167 @@ +--- +layout: page +title: ReleaseNotes10140202 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.14.02.02 | 02 Feb 2026 | [ReleaseNotes](ReleaseNotes10140202.html) | +| --- | --- | --- | + + + +sbndcode v10_14_02_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_14_02_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_14_02_02/sbndcode-v10_14_02_02.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +### Release Notes for [sbndcode] from v10_14_02_01 to v10_14_02_02 +- PR #902: updating TPC calibration tag to v4r1 + - **Description**: Updating SBND TPC calibration tag for electron lifetime to v4r1. [PR10](https://github.com/SBNSoftware/sbnd_data/pull/10) in sbnd_data should be merged first for this PR. + - **Labels**: reco1/reco2 + - **Reviewers**: + - **Assignees**: sungbinoh +- PR #900: updated YZ maps + - **Description**: Please provide a detailed description of the changes this pull request introduces. This is a PR to update YZ non-uniformity map using the gen2 samples. Below are the samples used to generate maps for this PR - [Data] data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd [MC] mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_histreco2_sbnd + - **Labels**: reco1/reco2 + - **Reviewers**: mrmooney + - **Assignees**: sxy1439 +- PR #899: Remove skip channel list and move to calibration database + - **Description**: This PR avoids using a non-reconstructed channel list for BFM and moves to using the calibration database. + - **Labels**: enhancement + - **Reviewers**: linyan-w + - **Assignees**: asanchezcastillo +- PR #898: Fix bug for opdettype in light propagation time + - **Labels**: bug + - **Reviewers**: + - **Assignees**: asanchezcastillo +- PR #896: Update beam-dump configuration to G4BNB v1.1.1 + - **Description**: Update beam-dump configuration to G4BNB v1.1.1 + - **Labels**: simulation + - **Reviewers**: + - **Assignees**: marcodeltutto +- PR #905: Revert "feature/pandora_electron_merge" + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #901: Bugfix/blips on empty events + - **Description**: + - **Labels**: bug, reco1/reco2 + - **Reviewers**: + - **Assignees**: Jjm321814 + +sbndcode sbndcode +--------------------------------------------------- + +* 2026-02-02 Nathaniel : Merge branch 'release/v10_14_02_02' +* 2026-02-02 Nathaniel : Update to sbncode v10_14_02_02 +* 2026-02-02 nathanielerowe : Merge pull request #901 from SBNSoftware/bugfix/BlipsOnEmptyEvents +* 2026-02-02 nathanielerowe : Merge branch 'develop' into bugfix/BlipsOnEmptyEvents +* 2026-02-02 nathanielerowe : Merge pull request #905 from SBNSoftware/revert-897-feature/pandora_electron_merge +* 2026-02-02 nathanielerowe : Merge branch 'develop' into revert-897-feature/pandora_electron_merge +* 2026-02-02 nathanielerowe : Merge pull request #896 from SBNSoftware/marcodeltutto-patch-2 +* 2026-02-02 nathanielerowe : Merge branch 'develop' into marcodeltutto-patch-2 +* 2026-02-02 nathanielerowe : Merge pull request #898 from SBNSoftware/feature/acastill_lightprop_bugfix +* 2026-02-02 nathanielerowe : Merge branch 'develop' into feature/acastill_lightprop_bugfix +* 2026-02-02 nathanielerowe : Merge pull request #899 from SBNSoftware/feature/acastill_bfm_cleanup +* 2026-02-02 nathanielerowe : Merge branch 'develop' into feature/acastill_bfm_cleanup +* 2026-02-02 nathanielerowe : Merge pull request #900 from SBNSoftware/yz_map_update_fall25 +* 2026-02-02 nathanielerowe : Merge branch 'develop' into yz_map_update_fall25 +* 2026-02-02 nathanielerowe : Merge pull request #902 from sungbinoh/feature/sungino_etau_db_tag +* 2026-02-02 nathanielerowe : Revert "feature/pandora_electron_merge" +* 2026-01-29 nathanielerowe : Merge branch 'develop' into yz_map_update_fall25 +* 2026-01-29 nathanielerowe : Merge branch 'develop' into feature/sungino_etau_db_tag* 2026-01-29 nathanielerowe : Update sbnd_data version to v01_42_00 +* 2026-01-29 Jacob McLaughlin : Updated fcl config with default param +* 2026-01-28 Alejandro Sánchez Castillo : Fix naming +* 2026-01-28 Jacob McLaughlin : fixed general hardcoding of the producer labels. Minor refactoring of some branches to assume the hitHandle the user provided was run through truthmatching and pandoraTrack +* 2026-01-28 Jacob McLaughlin : generally cleaning up indentation +* 2026-01-27 sungbinoh : updating tpc_elifetime_data to v4r1 from v3r1 +* 2026-01-26 Jacob McLaughlin : Merge branch 'develop' into bugfix/BlipsOnEmptyEvents +* 2026-01-26 Jacob McLaughlin : cleanup all my debug +* 2026-01-26 Alejandro Sánchez Castillo : Remove vector and use XAs +* 2026-01-23 Jacob McLaughlin : back to original +* 2026-01-23 Jacob McLaughlin : Final guess +* 2026-01-23 Jacob McLaughlin : A guess2 +* 2026-01-23 Jacob McLaughlin : A guess +* 2026-01-23 Jacob McLaughlin : additional special debug +* 2026-01-23 Jacob McLaughlin : additional special debug +* 2026-01-23 Jacob McLaughlin : remove old debug +* 2026-01-23 Jacob McLaughlin : special debug +* 2026-01-23 Marco Del Tutto : FIix flux table version in genie_sbnd.fcl for test +* 2026-01-23 Jacob McLaughlin : Hiding away branch that shouldn't be accessed +* 2026-01-22 Jacob McLaughlin : debug tracking +* 2026-01-22 Jacob McLaughlin : debug tracking +* 2026-01-22 Jacob McLaughlin : debug tracking +* 2026-01-22 Jacob McLaughlin : debug tracking +* 2026-01-22 Jacob McLaughlin : debug tracking +* 2026-01-22 Jacob McLaughlin : debug tracking +* 2026-01-22 Jacob McLaughlin : debug tracking +* 2026-01-22 Jacob McLaughlin : did not work +* 2026-01-22 Jacob McLaughlin : Restore oldest logic +* 2026-01-22 Jacob McLaughlin : debug +* 2026-01-22 Jacob McLaughlin : debug +* 2026-01-22 Jacob McLaughlin : debug +* 2026-01-22 Jacob McLaughlin : debug +* 2026-01-22 Jacob McLaughlin : debug +* 2026-01-22 Jacob McLaughlin : debug +* 2026-01-22 Jacob McLaughlin : change grow blip conditions +* 2026-01-22 Jacob McLaughlin : debug +* 2026-01-22 Jacob McLaughlin : debug +* 2026-01-22 Jacob McLaughlin : typo +* 2026-01-22 Jacob McLaughlin : typo +* 2026-01-22 Jacob McLaughlin : typo +* 2026-01-22 Jacob McLaughlin : Noticed sim depEnergy was staying at zero. Trying to fix it +* 2026-01-22 Jacob McLaughlin : Removing special behavior on gamma/neutron outside of CheckAncestry +* 2026-01-21 sungbinoh : updating TPC tag to v3r1 +* 2026-01-21 Jacob McLaughlin : Break ancestry at neutron too +* 2026-01-21 Jacob McLaughlin : Minor fix to true blip construction +* 2026-01-20 Jacob McLaughlin : removed debug +* 2026-01-20 Jacob McLaughlin : temp debug +* 2026-01-20 Shweta Yadav : updated YZ maps +* 2026-01-20 Jacob McLaughlin : Removed debug +* 2026-01-20 Jacob McLaughlin : That fixed it. Add a check for filling in blipID on real clusters +* 2026-01-20 Jacob McLaughlin : Try explicitly accessing array +* 2026-01-20 Jacob McLaughlin : Maybe we add it to the vector too fast? +* 2026-01-20 Jacob McLaughlin : Better spot for blip id update +* 2026-01-20 Jacob McLaughlin : fixing blip ID markers? May not update on blip object +* 2026-01-20 Alejandro Sánchez Castillo : Remove skip channel list and move to calibration database +* 2026-01-20 Alejandro Sánchez Castillo : Add continue for non-PMT channels +* 2026-01-20 Alejandro Sánchez Castillo : Fix bug for opdettype in light propagation time +* 2026-01-16 Marco Del Tutto : Update name in genie_sbnd.fcl to 1.1.1 +* 2026-01-16 Jacob McLaughlin : change ide performance +* 2026-01-16 Jacob McLaughlin : checking on sim energy deposit patch +* 2026-01-16 Jacob McLaughlin : debug +* 2026-01-16 Jacob McLaughlin : wrong type +* 2026-01-16 Jacob McLaughlin : wrong type +* 2026-01-16 Jacob McLaughlin : Removed default arg +* 2026-01-16 Jacob McLaughlin : Adding back sim energyDeposit interface +* 2026-01-16 Jacob McLaughlin : debug +* 2026-01-16 Jacob McLaughlin : debug +* 2026-01-16 Jacob McLaughlin : change hardcoded label +* 2026-01-16 Nathaniel : Merge tag 'v10_14_02_01' into develop +* 2026-01-16 Jacob McLaughlin : change hardcoded label +* 2026-01-15 Jacob McLaughlin : make special blip gaus hit more prominent +* 2026-01-15 Jacob McLaughlin : debug +* 2026-01-15 Jacob McLaughlin : Checking what branch causes new crash +* 2026-01-15 Jacob McLaughlin : Fixed a hit mapper line to match new inputs +* 2026-01-12 Marco Del Tutto : Update beam-dump configuration to G4BNB v1.1.1 From 675e6e50c7af82de740989c61bdc90da237bea56 Mon Sep 17 00:00:00 2001 From: Seokju Chung Date: Thu, 19 Feb 2026 09:51:27 -0500 Subject: [PATCH 1384/1437] Retire Feb25 Workshop - Intrinsic Nue + Cosmics / v10_04_01_01 --- sbn/sbnprod_wiki/sample.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 850052450..ee3502740 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -141,9 +141,6 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_flat_caf_sbnd | -| Feb25 Workshop - Intrinsic Nue + Cosmics | MC2025A | v10_04_01_01 | 7.5k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_intrnue_spill_tpc_sbnd_MCP2025A_reco2_sbnd | | Feb25 Workshop - FullOsc + Cosmics | MC2025A | v10_04_01_01 | 10k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_reco2_sbnd | From 9cf2cbbe67359fb953e8ee9f98117f56993e5d84 Mon Sep 17 00:00:00 2001 From: Seokju Chung Date: Thu, 19 Feb 2026 09:51:58 -0500 Subject: [PATCH 1385/1437] Retire Feb25 Workshop - FullOsc + Cosmics / v10_04_01_01 --- sbn/sbnprod_wiki/sample.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index ee3502740..2f3eacb64 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -141,9 +141,6 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_flat_caf_sbnd | -| Feb25 Workshop - FullOsc + Cosmics | MC2025A | v10_04_01_01 | 10k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_fullosc_sce_MCP2025A_reco2_sbnd | | Feb25 Workshop - BNB + Cosmics | MC2025A | v10_04_01 | 60k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_reco2_sbnd | From b4b52d0015e989b6e92ce5f912ebdd4d93e97d49 Mon Sep 17 00:00:00 2001 From: Seokju Chung Date: Thu, 19 Feb 2026 09:52:33 -0500 Subject: [PATCH 1386/1437] Retire Feb25 Workshop - In-Time Cosmics --- sbn/sbnprod_wiki/sample.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2f3eacb64..e6ed05e36 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -146,11 +146,6 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_caf_sbnd | | --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_caf_flat_caf_sbnd | -| Feb25 Workshop - In-Time Cosmics | MC2025A | v10_04_01 | 20k | reco1 | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2025A_prodcorsika_proton_intime_filter_sce_MCP2025A_caf_flat_caf_sbnd | | BNB + Cosmics - w/o diffusion | MC2024B | v09_91_02_02 | 50504 | CV reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_50k_sbnd | | --- | --- | --- | --- | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | From 1bee9b0df1eaada4e6741176880fef2940405606 Mon Sep 17 00:00:00 2001 From: Seokju Chung Date: Thu, 19 Feb 2026 09:53:16 -0500 Subject: [PATCH 1387/1437] Retire BNB + Cosmics - w/o diffusion caf and flatCAF --- sbn/sbnprod_wiki/sample.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index e6ed05e36..23407a885 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -149,8 +149,6 @@ Monte Carlo official SBN Production Samples | BNB + Cosmics - w/o diffusion | MC2024B | v09_91_02_02 | 50504 | CV reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_50k_sbnd | | --- | --- | --- | --- | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_caf_flat_caf_sbnd | | BNB + Cosmics CV | MC2024B | v09_91_02_02 | 316623 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | From 109f448e013f54a986a4ce9a425a64b11c203b5d Mon Sep 17 00:00:00 2001 From: Lucy Kotsiopoulou Date: Fri, 20 Feb 2026 15:25:08 +0000 Subject: [PATCH 1388/1437] Begin to add extra info to calib db md, started with further info section --- sbnd_calibration_database.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sbnd_calibration_database.md b/sbnd_calibration_database.md index 5168223c8..0aa1bb5cf 100644 --- a/sbnd_calibration_database.md +++ b/sbnd_calibration_database.md @@ -1,15 +1,16 @@ --- layout: page title: SBND Calibration Database -description: SBND Calibration Database Instruction +description: SBND Calibration Database Instructions toc: true --- # SBND Calibration Database Author: Marina Reggiani-Guzzo, PDRA at University of Edinburgh, mguzzo@ed.ac.uk +Current Database manager: Lucy Kotsiopoulou, PhD student at University of Edinburgh, l.kotsiopoulou@sms.ed.ac.uk -Last update: 23 May 2024 +Last update: 20th February 2024 Hi there, this document contains all the information you need to know about the SBND calibration database. Please contact the author if you find any wrong/outdated information on this page. @@ -17,6 +18,14 @@ Hi there, this document contains all the information you need to know about the - This page is under construction, this message will be removed when the displayed information is definite! - If you are working on the SBND calibration, please check if the information for your calibration is listed below, otherwise please update [SBND Calibration Database Spreadsheet](https://docs.google.com/spreadsheets/d/1xbAhb6WnmxbwKxFc-4nnInjHdH8A50S6Zgh0mfZrSF4/edit#gid=217643219) +**Further information about the database can be found in these presentations on the SBND docdb:** +- Calibration update: status and quick guidelines, Lucy Kotsiopoulou, 7.8.2025 (SBN-doc-42768) +- SBND Calibration Database (update), Alejandro Sánchez Castillo & Marina Reggiani-Guzzo & Moon Jung, 6.3.2025 (SBN-doc-40231) +- Creating and populating a database, Marina Reggiani-Guzzo, 19.8.2024 (SBN-doc-37559) +- SBND Calibration Database, Marina Reggiani-Guzzo, 2.2.2024 (SBN-doc-34811) + + + # Databases There are two databases for SBND: **development database** and **production database**. The "development database" is an intermediate stage used to validate the values that will later on be uploaded to the "production database", which is the one accessed by analyser modules and simulations. That means that, every time the database needs to be updated (whether it is a value changing, or including/removing variables) it will be implemented in the "development database" first. The change should be validated by the person requesting the change, and once confirmed that everything looks ok, the changes will be pushed to the "production database". From cacee0044fc0a4f76a707fbebb3799e630713eec Mon Sep 17 00:00:00 2001 From: mattfcs Date: Fri, 20 Feb 2026 10:55:25 -0500 Subject: [PATCH 1389/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 23407a885..37c3d6352 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -149,11 +149,6 @@ Monte Carlo official SBN Production Samples | BNB + Cosmics - w/o diffusion | MC2024B | v09_91_02_02 | 50504 | CV reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_50k_sbnd | | --- | --- | --- | --- | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | -| BNB + Cosmics CV | MC2024B | v09_91_02_02 | 316623 | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_flat_caf_sbnd | | BNB + Cosmics GENIE CV | MC2023B | v09_75_03_02 | 102189 | reco1 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_wcsim_detsim_reco1_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | | --- | --- | --- | --- | caf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_sbnd | From ccbc551d196ff7a254c1976b5586d836df893a2f Mon Sep 17 00:00:00 2001 From: Prabhjot Singh <42891474+PrabhjotSingh247@users.noreply.github.com> Date: Fri, 20 Feb 2026 10:59:40 -0600 Subject: [PATCH 1390/1437] Update sample.md by removing old workshop data Removed outdated entries for the Feb25 Workshop - BNB + Cosmics with MC2025A v10_04_03. --- sbn/sbnprod_wiki/sample.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 37c3d6352..dbb9b95a2 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -137,10 +137,6 @@ Monte Carlo official SBN Production Samples | --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_flat_caf_sbnd | -| Feb25 Workshop - BNB + Cosmics | MC2025A | v10_04_03 | 60k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_LArv10_caf_flat_caf_sbnd | | Feb25 Workshop - BNB + Cosmics | MC2025A | v10_04_01 | 60k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_reco2_sbnd | From 6b21ded7aa5b8dc370c168ee08282d85fba6b6b8 Mon Sep 17 00:00:00 2001 From: Prabhjot Singh <42891474+PrabhjotSingh247@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:07:23 -0600 Subject: [PATCH 1391/1437] Remove Feb25 Workshop entries from sample.md Removed entries related to the Feb25 Workshop for MC2025A. --- sbn/sbnprod_wiki/sample.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index dbb9b95a2..dba3e0479 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -137,11 +137,6 @@ Monte Carlo official SBN Production Samples | --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_sbnd | | --- | --- | --- | --- | flatcaf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_flat_caf_sbnd | -| Feb25 Workshop - BNB + Cosmics | MC2025A | v10_04_01 | 60k | reco1 | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_gen_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | larcv | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_gen_g4_detsim_reco1_larcv_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2025A_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_MCP2025A_caf_flat_caf_sbnd | | BNB + Cosmics - w/o diffusion | MC2024B | v09_91_02_02 | 50504 | CV reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_50k_sbnd | | --- | --- | --- | --- | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | From f83d5303aa6072ba56643e76881bfbd49bf9190e Mon Sep 17 00:00:00 2001 From: Sayan Kr Das Date: Mon, 23 Feb 2026 12:12:31 +0000 Subject: [PATCH 1392/1437] Remove outdated BNB + Cosmics entries for MC2023B Removed entries related to BNB + Cosmics GENIE CV and GiBUU for MC2023B. --- sbn/sbnprod_wiki/sample.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index dba3e0479..13473cee6 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -140,14 +140,6 @@ Monte Carlo official SBN Production Samples | BNB + Cosmics - w/o diffusion | MC2024B | v09_91_02_02 | 50504 | CV reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_50k_sbnd | | --- | --- | --- | --- | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_sbnd | | --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | -| BNB + Cosmics GENIE CV | MC2023B | v09_75_03_02 | 102189 | reco1 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_wcsim_detsim_reco1_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_caf_flat_caf_sbnd | -| BNB + Cosmics GiBUU | MC2023B | v09_75_03_02 | 102189 | reco1 | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_gibuu_g4_wcsim_detsim_reco1_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_reco2_sbnd | -| --- | --- | --- | --- | caf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_caf_sbnd | -| --- | --- | --- | --- | flatcaf | official_MCP2023B_prodoverlay_corsika_cosmics_proton_gibuu_dirtpropagation_sbnd_caf_flat_caf_sbnd | ### ICARUS MC From 89a6b3fdf417282d4207dc39c7fecc05704f0ab3 Mon Sep 17 00:00:00 2001 From: Prabhjot Singh <42891474+PrabhjotSingh247@users.noreply.github.com> Date: Mon, 23 Feb 2026 11:46:36 -0600 Subject: [PATCH 1393/1437] Removed BNB + Cosmics - w/o diffusion / v09_91_02_02 Removed BNB + Cosmics - w/o diffusion / v09_91_02_02 --- sbn/sbnprod_wiki/sample.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 13473cee6..cbb9dd1e7 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -136,10 +136,7 @@ Monte Carlo official SBN Production Samples | --- | --- | --- | --- | flatcaf | mc_MCP2025B_prodgenie_corsika_proton_rockbox_ccnue_sbnd_caf_flat_caf_sbnd | | --- | --- | v10_06_00_09 | --- | calib tuple | hist_mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_reco2_sbnd | | --- | --- | --- | --- | caf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_sbnd | -| --- | --- | --- | --- | flatcaf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_flat_caf_sbnd | -| BNB + Cosmics - w/o diffusion | MC2024B | v09_91_02_02 | 50504 | CV reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_gen_g4_detsim_reco1_50k_sbnd | -| --- | --- | --- | --- | reco1 | official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_g4_detsim_reco1_sbnd | -| --- | --- | --- | --- | calib tuple | hist_official_MCP2024B_prodoverlay_corsika_cosmics_proton_genie_rockbox_sce_VAR1_reco2_sbnd | +| --- | --- | --- | --- | flatcaf | mc_MCP2025C_v10_06_00_09_prodgenie_corsika_proton_rockbox_ccnue_sbnd_CV_caf_flat_caf_sbnd | ### ICARUS MC From 2a9dc47e9ff5758f232cfc58288db15522b87726 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Mon, 2 Mar 2026 16:30:24 -0500 Subject: [PATCH 1394/1437] Create analysis.md for SBN Production Samples Add initial analysis page for SBN Production Samples. --- sbn/sbnprod_wiki/analysis.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 sbn/sbnprod_wiki/analysis.md diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md new file mode 100644 index 000000000..aa1de45d7 --- /dev/null +++ b/sbn/sbnprod_wiki/analysis.md @@ -0,0 +1,10 @@ +--- +layout: page +title: SBN Production Sample Descriptions +subtitle: Descriptions of SBN Production Samples +description: Wiki for the SBN Analyzers using Production Samples +hero_height: is-medium +# menubar: sbnprod_menu +toc: true +toc_title: SBN Production Sample Description +--- From 5251ea0ed23be098fdb6d62e0d623cc061c483d5 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Mon, 2 Mar 2026 16:31:35 -0500 Subject: [PATCH 1395/1437] Add SBN Production Available Samples Page header --- sbn/sbnprod_wiki/analysis.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index aa1de45d7..c7d5939b5 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -8,3 +8,8 @@ hero_height: is-medium toc: true toc_title: SBN Production Sample Description --- + + + +SBN Production Available Samples Page- +========================================== From ebe9abfaeeaf1a182eaba3d960cfba9b34cf3395 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Mon, 2 Mar 2026 16:40:25 -0500 Subject: [PATCH 1396/1437] Testing Added structure and placeholders for content. --- sbn/sbnprod_wiki/analysis.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index c7d5939b5..e7287b17d 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -13,3 +13,21 @@ toc_title: SBN Production Sample Description SBN Production Available Samples Page- ========================================== + + +# 📝 Page Title + +## What This Page Is + +> Describe the purpose of the page here. + +## Details + +More informative content… + +--- + +## 🔗 Related Pages + +- [Main Home](Home) +- [Another Page](AnotherPage) From 2edfb3afbfe45a3066a3c95d81ecbab39c04cc90 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Mon, 2 Mar 2026 16:49:27 -0500 Subject: [PATCH 1397/1437] Update analysis.md with new sample descriptions --- sbn/sbnprod_wiki/analysis.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index e7287b17d..b4fbce25c 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -11,23 +11,27 @@ toc_title: SBN Production Sample Description -SBN Production Available Samples Page- +SBN Production Available Samples Descriptions- ========================================== +Below we will include useful information for analyzers to understand what goes into each sample. -# 📝 Page Title +# Data -## What This Page Is +## BNB + Light Data -> Describe the purpose of the page here. +Here is all the information for BNB + Light -## Details +## Zero Bias Data + +## OffBeam + Light Data + +## OffBeam Zero Bias Data + +# MC -More informative content… ---- ## 🔗 Related Pages -- [Main Home](Home) -- [Another Page](AnotherPage) +- [Samples Page](sample) From 65c77d705a5f93db0aa57427975e0553ed4bfa12 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:09:39 -0500 Subject: [PATCH 1398/1437] Enhance analysis.md with sample descriptions Updated analysis documentation to include detailed descriptions for each sample type and generation analyses. --- sbn/sbnprod_wiki/analysis.md | 48 ++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index b4fbce25c..445169c8f 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -14,24 +14,56 @@ toc_title: SBN Production Sample Description SBN Production Available Samples Descriptions- ========================================== -Below we will include useful information for analyzers to understand what goes into each sample. +> Below we will include useful information for analyzers to understand what goes into each sample, as listed from the [Samples Page](sample). -# Data +Here is what is listed for each sample: +1. short description of sample, what it's used for, how to use it, general notes on usage +2. which runs are used: time frame or d +3. code versions +4. fcls? +5. -## BNB + Light Data + +# Generation 2 Analyses +Description of what is different with the Gen 2 analyses + + +## Data + +### BNB + Light Data Here is all the information for BNB + Light -## Zero Bias Data +### Zero Bias Data + +### OffBeam + Light Data + +### OffBeam Zero Bias Data + +## MC + + + +# Generation 1 Analyses +What is included in Gen 1 analyses? + + + +## Data + +### BNB + Light Data + +Here is all the information for BNB + Light -## OffBeam + Light Data +### Zero Bias Data -## OffBeam Zero Bias Data +### OffBeam + Light Data -# MC +### OffBeam Zero Bias Data +## MC -## 🔗 Related Pages +## Related Pages - [Samples Page](sample) From 349f7c883accc7f01b27d6a3b487973f10aa3a03 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:11:28 -0500 Subject: [PATCH 1399/1437] Fix Samples Page link in analysis.md Updated the Samples Page link to use the full URL. --- sbn/sbnprod_wiki/analysis.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 445169c8f..4b0acbedd 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -14,7 +14,7 @@ toc_title: SBN Production Sample Description SBN Production Available Samples Descriptions- ========================================== -> Below we will include useful information for analyzers to understand what goes into each sample, as listed from the [Samples Page](sample). +> Below we will include useful information for analyzers to understand what goes into each sample, as listed from the [Samples Page](https://sbnsoftware.github.io/sbn/sbnprod_wiki/sample). Here is what is listed for each sample: 1. short description of sample, what it's used for, how to use it, general notes on usage From 106c0d50c7eb6712b6bcb1f646bd7aff3b43fda4 Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Tue, 3 Mar 2026 09:12:09 -0600 Subject: [PATCH 1400/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index cbb9dd1e7..bbc870445 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -628,7 +628,7 @@ ICARUS SBN Production Samples | --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_blind | | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_bnbmajority_larcv | -| ICARUS Spring, Run 2 Off-Beam BNB Majority Data | v10_06_00_01p05 | --- | stage0 w PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0 | +| ICARUS Spring, Run 2 Off-Beam BNB Majority Data w/o calib | v10_06_00_01p05 | --- | stage0 w PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0 | | --- | --- | --- | stage0 w/o PMT WF | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_stage0_daqPMT_drop | | --- | --- | --- | calibration tuples | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_calibtuples | | --- | --- | --- | caf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_v10_06_00_01p05_offbeambnbmajority_caf_prescaled | @@ -646,7 +646,14 @@ ICARUS SBN Production Samples | --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_flatcaf_blind | | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_wCalib_v10_06_00_04p03_bnbmajority_larcv | - +|ICARUS Spring, Run 2 BNB Majority (recalibrated) | v10_06_00_06p03 | --- | calibration tuples |Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_calibtuples | +| --- | --- | --- | caf_prescaled |Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_caf_prescaled | +| --- | --- | --- | caf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_caf_blind | +| --- | --- | --- | caf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_caf_unblind | +| --- | --- | --- | flatcaf_prescaled |Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_flatcaf_prescaled| +| --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_flatcaf_blind| +| --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_flatcaf_unblind | +| --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_larcv | ### ICARUS SBN MC Overlay production ----------------------------------- From c37fe6246449a0a1964478350bb7cd43322ffc9f Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Tue, 3 Mar 2026 09:18:10 -0600 Subject: [PATCH 1401/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index bbc870445..a5fe3ef0b 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -609,7 +609,7 @@ Data SBN Production Samples | --- | --- | --- | caf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_caf | | --- | --- | --- | flatcaf | sbnd_keepup_summer2024_neutrino_data_bnbZeroBiasAndSunset0-00009_flatcaf | -ICARUS SBN Production Samples +ICARUS 2025 Spring SBN Production Samples --------------------------- **Notes on samples:** These are produced with v10_xx_xx_xx using ***wcdnn*** fcls. From 7e70e28afc9fdfc926ecf82d69e7c41e6dbf35cc Mon Sep 17 00:00:00 2001 From: PromitaRoy <167725781+PromitaRoy@users.noreply.github.com> Date: Tue, 3 Mar 2026 09:36:18 -0600 Subject: [PATCH 1402/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index a5fe3ef0b..7be7c517a 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -654,6 +654,14 @@ ICARUS 2025 Spring SBN Production Samples | --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_flatcaf_blind| | --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_flatcaf_unblind | | --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_bnbmajority_larcv | +|ICARUS Spring, Run 2 OFFBeam BNB Majority (recalibrated) | v10_06_00_06p03 | --- | calibration tuples |Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_offbeambnbmajority_calibtuples | +| --- | --- | --- | caf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_offbeambnbmajority_caf_prescaled | +| --- | --- | --- | caf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_offbeambnbmajority_caf_blind | +| --- | --- | --- | caf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_offbeambnbmajority_caf_unblind | +| --- | --- | --- | flatcaf_prescaled | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_offbeambnbmajority_flatcaf_prescaled | +| --- | --- | --- | flatcaf_blind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_offbeambnbmajority_flatcaf_blind | +| --- | --- | --- | flatcaf_unblind | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_offbeambnbmajority_flatcaf_unblind | +| --- | --- | --- | larcv | Icaruspro_2025_wcdnn_production_Reproc_Run2_SBN_2_v10_06_00_06p03_offbeambnbmajority_larcv | ### ICARUS SBN MC Overlay production ----------------------------------- From 34d4b752327ee15e53c3e463607fe226b8e32c01 Mon Sep 17 00:00:00 2001 From: Jacob Smith Date: Thu, 5 Mar 2026 22:29:22 -0500 Subject: [PATCH 1403/1437] Revise CVMFS documentation for user privileges Updated the document to reflect the current authorized users with CVMFS privileges and modified the date of the last update. --- icaruscode_wiki/Write_files_to_CVMFS.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/icaruscode_wiki/Write_files_to_CVMFS.md b/icaruscode_wiki/Write_files_to_CVMFS.md index b227ee0eb..ae2379995 100644 --- a/icaruscode_wiki/Write_files_to_CVMFS.md +++ b/icaruscode_wiki/Write_files_to_CVMFS.md @@ -12,7 +12,7 @@ Write files to CVMFS ============================================================ _(original text from Andrzej Szelc)_ -_(updated December 14, 2021, to better reflect current procedure)_ +_(updated March 5th, 2026, to better reflect currently authorized users with CVMFS privileges)_ Modifications to ICARUS area in CVMFS are performed interacting as user `cvmfsicarus` on the server `oasiscfs.fnal.gov`. @@ -96,8 +96,14 @@ Users with ICARUS CVMFS upload privileges | since(—to) [Gianluca Petrillo](mailto:petrillo@slac.stanford.edu) | 2017 Miquel Nebot-Guinot | 2020 Patrick Green | 2020 -Chris Hilgenberg | 2021—2022 +Chris Hilgenberg | 2021 Matthew Rosenberg | 2022 +[Jacob Smith](mailto:jacob.a.smith@stonybrook.edu) | 2026 +Leo Aliaga-Soplin | unknown +Vito Di Benedetto | unknown +Sergey Martynenko | unknown + + To add a user to the list, his/her Kerberos principal must be added to `.k5login` file in the home directory of `cvmfsicarus`. From c32e846e0564c7cf0dcf4697e5e563a64e81f1a2 Mon Sep 17 00:00:00 2001 From: Jacob Smith Date: Thu, 5 Mar 2026 22:44:25 -0500 Subject: [PATCH 1404/1437] Update authors' years in Write_files_to_CVMFS.md Updated the years for Chris Hilgenberg and Matthew Rosenberg to '2021-unknown' and '2022-unknown' respectively. --- icaruscode_wiki/Write_files_to_CVMFS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/icaruscode_wiki/Write_files_to_CVMFS.md b/icaruscode_wiki/Write_files_to_CVMFS.md index ae2379995..db7ebd184 100644 --- a/icaruscode_wiki/Write_files_to_CVMFS.md +++ b/icaruscode_wiki/Write_files_to_CVMFS.md @@ -96,8 +96,8 @@ Users with ICARUS CVMFS upload privileges | since(—to) [Gianluca Petrillo](mailto:petrillo@slac.stanford.edu) | 2017 Miquel Nebot-Guinot | 2020 Patrick Green | 2020 -Chris Hilgenberg | 2021 -Matthew Rosenberg | 2022 +Chris Hilgenberg | 2021-unknown +Matthew Rosenberg | 2022-unknown [Jacob Smith](mailto:jacob.a.smith@stonybrook.edu) | 2026 Leo Aliaga-Soplin | unknown Vito Di Benedetto | unknown From 2a14604931bcdbe8b404823e3202d16fdc7e4dc9 Mon Sep 17 00:00:00 2001 From: Jacob Smith Date: Fri, 6 Mar 2026 19:11:42 -0500 Subject: [PATCH 1405/1437] Revise user list and fix pronoun usage in CVMFS doc Updated the list of users with ICARUS CVMFS upload privileges and corrected pronouns in the text. --- icaruscode_wiki/Write_files_to_CVMFS.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/icaruscode_wiki/Write_files_to_CVMFS.md b/icaruscode_wiki/Write_files_to_CVMFS.md index db7ebd184..2fa5d8e35 100644 --- a/icaruscode_wiki/Write_files_to_CVMFS.md +++ b/icaruscode_wiki/Write_files_to_CVMFS.md @@ -84,28 +84,28 @@ Access privileges ------------------------------------------------------ A few ICARUS people are allowed to log as `cvmfsicarus` on -`oasiscfs.fnal.gov`, and they can add a few others. -As of August 2020, these people are: +`oasiscfs.fnal.gov`, and they can add others. +As of March 2026, these people are: Users with ICARUS CVMFS upload privileges | since(—to) -------------------------------------------------------------- | ----------- -[Wes Ketchum](mailto:wketchum@fnal.gov) | 2016 -[Yun-Tse Tsai](mailto:yuntse@slac.stanford.edu) | 2016—2021 -[Tracy Usher](mailto:usher@slac.stanford.edu) | The Stone Age -[Francesco Tortorici](mailto:francesco.tortorici@ct.infn.it) | 2016—2021 -[Gianluca Petrillo](mailto:petrillo@slac.stanford.edu) | 2017 -Miquel Nebot-Guinot | 2020 -Patrick Green | 2020 +Yun-Tse Tsai | 2016—2021 +Francesco Tortorici | 2016—2021 +Miquel Nebot-Guinot | 2020-2026 +Patrick Green | 2020-2026 Chris Hilgenberg | 2021-unknown Matthew Rosenberg | 2022-unknown -[Jacob Smith](mailto:jacob.a.smith@stonybrook.edu) | 2026 +Tracy Usher (usher at slac dot stanford dot edu) | The Stone Age +Wes Ketchum (wketchum at fnal dot gov) | 2016 +Gianluca Petrillo (petrillo at slac dot stanford dot edu) | 2017 +Jacob Smith (jacob dot a dot smith at stonybrook dot edu) | 2026 Leo Aliaga-Soplin | unknown Vito Di Benedetto | unknown Sergey Martynenko | unknown -To add a user to the list, his/her Kerberos principal must be added to +To add a user to the list, their Kerberos principal must be added to `.k5login` file in the home directory of `cvmfsicarus`. From 3820e3a466d2d6b617e3f36461f0071c4a815548 Mon Sep 17 00:00:00 2001 From: Jacob Smith Date: Fri, 6 Mar 2026 20:03:13 -0600 Subject: [PATCH 1406/1437] Use gender-neutral pronouns where applicable. Start tracking the woke_mind_virus.sh file that (mostly) automates this process for future wiki revisions. --- Operations/SBN_FD/Cryogenics_checklist.md | 6 +- .../SBN_FD/Cryogenics_checklist_via_epics.md | 6 +- Operations/SBN_FD/GoogleVoice.md | 8 +- Operations/SBN_FD/ICARUS_Shadow_shift.md | 4 +- Operations/SBN_FD/PMT_HV_Monitoring.md | 2 +- Operations/SBN_FD/What_to_do_on_shift.md | 4 +- Operations/SBN_FD/What_to_do_on_shift_new.md | 8 +- icaruscode_wiki/computing/stashCache.md | 4 +- sbndcode_wiki/Write_files_to_CVMFS.md | 2 +- woke_mind_virus.sh | 86 +++++++++++++++++++ 10 files changed, 108 insertions(+), 22 deletions(-) create mode 100755 woke_mind_virus.sh diff --git a/Operations/SBN_FD/Cryogenics_checklist.md b/Operations/SBN_FD/Cryogenics_checklist.md index 309da2ac3..8315b6821 100644 --- a/Operations/SBN_FD/Cryogenics_checklist.md +++ b/Operations/SBN_FD/Cryogenics_checklist.md @@ -14,7 +14,7 @@ A\) During cooldown: > I. Cooling is a low process, so do not expect any rapid variation of > the temperature. If this event occurs, please notify the Technical -> Coordinator or his deputy +> Coordinator or their deputy > II\. **Check** the internal temperature of the East and West modules > **at least once per hour** (all temperatures are displayed in K)( see @@ -29,7 +29,7 @@ A\) During cooldown: > b\) When the temperature difference of ALL the probes inside *both > modules* goes below 35K (this will take several hours), the shifter -> will call the Cryogenic expert on call to tell him the cooling process +> will call the Cryogenic expert on call to tell them the cooling process > can be restarted. B\) During filling: @@ -53,7 +53,7 @@ B\) During filling: > turns on in any of the modules, the shifter is ONLY required to check > the internal level probes and the internal temperature probes every > hour. Anomalies in the readings need to be reported timely to the -> Technical Coordinator or his Deputy and registered in the e-log. +> Technical Coordinator or their Deputy and registered in the e-log. > IV\. As soon as the first internal level probe (at -6cm position ) > alarm starts, the shifter MUST notify both Technical Coordinator and diff --git a/Operations/SBN_FD/Cryogenics_checklist_via_epics.md b/Operations/SBN_FD/Cryogenics_checklist_via_epics.md index 96d391f74..ec594edc9 100644 --- a/Operations/SBN_FD/Cryogenics_checklist_via_epics.md +++ b/Operations/SBN_FD/Cryogenics_checklist_via_epics.md @@ -13,7 +13,7 @@ A\) During cooldown: > I. Cooling is a low process, so do not expect any rapid variation of > the temperature. If this event occurs, please notify the Technical -> Coordinator or his deputy +> Coordinator or their deputy > II\. **Check** the internal temperature of the East and West modules > **at least once per hour** (all temperatures are displayed in K)( see @@ -28,7 +28,7 @@ A\) During cooldown: > b\) When the temperature difference of ALL the probes inside *both > modules* goes below 35K (this will take several hours), the shifter -> will call the Cryogenic expert on call to tell him the cooling process +> will call the Cryogenic expert on call to tell them the cooling process > can be restarted. B\) During filling: @@ -44,7 +44,7 @@ B\) During filling: > turns on in any of the modules, the shifter is ONLY required to check > the internal level probes and the internal temperature probes every > hour. Anomalies in the readings need to be reported timely to the -> Technical Coordinator or his Deputy and registered in the e-log. +> Technical Coordinator or their Deputy and registered in the e-log. > IV\. As soon as the first internal level probe (at -6cm position ) > alarm starts, the shifter MUST notify both Technical Coordinator and diff --git a/Operations/SBN_FD/GoogleVoice.md b/Operations/SBN_FD/GoogleVoice.md index 9c8fc243e..1acc943af 100644 --- a/Operations/SBN_FD/GoogleVoice.md +++ b/Operations/SBN_FD/GoogleVoice.md @@ -39,7 +39,7 @@ section](GoogleVoice/edit?section=3){.icon-only Shifters are required to test their Google Voice connection prior the their shift. Since the current shifter is already logged on, please -inform him/her of the incoming test.\ +inform them of the incoming test.\ Login to Google Voice can be done via this link []{.ul} by clicking on the Sign in button on the top right. @@ -64,7 +64,7 @@ section of google voice (top left) and it was sent by the number 22000. In order not to create confusion and misunderstanding, only one person at the time should ask for the code since they are device-dependent. Consider waiting for the shifter agreement before logging in since if -he/she is not available to forward the code, it might expire. It was +they are not available to forward the code, it might expire. It was noticed that if too many codes expire, the device could be accidentally placed in a \"black list\", if this is the case contact the Icarus Shift Expert on duty. @@ -106,8 +106,8 @@ section](GoogleVoice/edit?section=4){.icon-only The Google Voice should be used for the following tasks:\ \*Call the MCR at the beginning of the shift.\ \*Call the experts in case of need or receive calls from the experts. If -the expert does not pick up the call in time, he will be notified that -the shifter is in need he/she will call back as soon as possible.\ +the expert does not pick up the call in time, they will be notified that +the shifter is in need and should call the shifter back as soon as possible.\ \*Receive calls from the Control Room or Beam experts.\ In order not to miss calls from the experts, it is highly suggested to leave the Google Voice page open in the browser throughout the Shift.\ diff --git a/Operations/SBN_FD/ICARUS_Shadow_shift.md b/Operations/SBN_FD/ICARUS_Shadow_shift.md index 9b65ab040..0dd05bef2 100644 --- a/Operations/SBN_FD/ICARUS_Shadow_shift.md +++ b/Operations/SBN_FD/ICARUS_Shadow_shift.md @@ -49,7 +49,7 @@ shifters in ICARUS. defined ) Shadow shifts may be self-booked from the ECL calendar sloth. The -sitting shifter should check if he/she is supposed to be replaced by a +sitting shifter should check if they are supposed to be replaced by a shadow shifter and inform the Run coordinator in case the shadow shifter person is not responding. At the end of the shift, the sitting shifter must put update the ?date of last shift? column in the [Shadow shift @@ -59,7 +59,7 @@ example in case the shadow shifter is a new collaborator ) it may be added. The Run coordinator should make sure all the shifters are certified for -their shift duties. He/she also collects requests for shadow shift swaps +their shift duties. They also collect requests for shadow shift swaps and other \"exemptions\". ::: diff --git a/Operations/SBN_FD/PMT_HV_Monitoring.md b/Operations/SBN_FD/PMT_HV_Monitoring.md index 3340ecefd..06a2bc0ae 100644 --- a/Operations/SBN_FD/PMT_HV_Monitoring.md +++ b/Operations/SBN_FD/PMT_HV_Monitoring.md @@ -363,7 +363,7 @@ will not be updated but if there are no other problems the pmt will continue to be powered.\ 11. **Server** : should be \"running\". If the SY1527 server crashes, the text changes to **down** and the channels monitor will not update -anymore. How to react: 1) ask an expert if available during his daytime, +anymore. How to react: 1) ask an expert if available during their daytime, or 2) try press the \"IOC restart\" button: the GUI will show \'disconnected\' for about one minute and then should be back. If there is any problem send an email to \ diff --git a/Operations/SBN_FD/What_to_do_on_shift.md b/Operations/SBN_FD/What_to_do_on_shift.md index be6bf47d0..178a528da 100644 --- a/Operations/SBN_FD/What_to_do_on_shift.md +++ b/Operations/SBN_FD/What_to_do_on_shift.md @@ -200,7 +200,7 @@ Shifters in the US can use both mobile or browser app to make calls, while Europe based shifters can only do that via browser application. If authenticating via browser **make sure to enable voice and audio permession** in order to make/receive calls.\ -The shifters are required to be logged in throughout his/her shift in +The shifters are required to be logged in throughout their shift in order to be able to pick up calls. Multiple Google accounts can be used at the same time in different tabs, hence shifters can use their personal accounts for other Google products (Gmail, YouTube, etc\...).\ @@ -319,7 +319,7 @@ this form during DAQ work/testing, but if not asked otherwise you should go with this. Thanks! **PURITY RUNS**\ -The shifter has among his duties to take purity runs. This is in general +The shifter has among their duties to take purity runs. This is in general done by the swing shifter around 6 pm CST. In general, the shifter is informed of when to take purity runs. The instruction can be found on the dedicated diff --git a/Operations/SBN_FD/What_to_do_on_shift_new.md b/Operations/SBN_FD/What_to_do_on_shift_new.md index d84fa9b98..e4363e235 100644 --- a/Operations/SBN_FD/What_to_do_on_shift_new.md +++ b/Operations/SBN_FD/What_to_do_on_shift_new.md @@ -262,7 +262,7 @@ Please show up for your shift 15 minutes in advance. The very first step you have to do are: 1. **Communicate with the previous shifter** on the Slack channel - `#icarus-shift-operation` and inform him of your arrival. Ask him to + `#icarus-shift-operation` and inform them of your arrival. Ask them to brief you about the detector and run condition and if issues have been encountered during the shift or experts have been called. If you have the chance to speak with the shifter in person or over the @@ -272,7 +272,7 @@ you have to do are: make sure also to read the bulletin board and refresh your memory about the shift procedure. 3. **Communicate with your shadow shifter** If you have a shadow - shifter, make sure he\'s ready to shadow you. + shifter, make sure they are ready to shadow you. 4. **Fill the [Shift Check-in](https://dbweb8.fnal.gov:8443/ECL/sbnfd/E/create_entry?f=Shift+Check-in) checklist** @@ -425,7 +425,7 @@ It is your duty to remain on shift until the new shifter is well set. after 15 minutes at the end of your shift to coordinate the transition and make sure the shift after yours is well covered** -- **When the new shift arrives** you should interact with him/her and +- **When the new shift arrives** you should interact with them and communicate anything relevant that happened during your shift. At this point the incoming shifter will prepare the remote connections and log-in to the Google Voice account. @@ -441,7 +441,7 @@ and make sure the shift after yours is well covered** messages ( Click the message icon from the menu bar on the left side of the screen ). The code has the format G-\*\*\*\*. **Remember to log-out from the ICARUS Google account once the shifter confirms - that he/she is well set!** + that they are well set!** !(/redmine/attachments/download/63879/gvoice_messages.png) diff --git a/icaruscode_wiki/computing/stashCache.md b/icaruscode_wiki/computing/stashCache.md index 5f41f7b10..4e99e255a 100644 --- a/icaruscode_wiki/computing/stashCache.md +++ b/icaruscode_wiki/computing/stashCache.md @@ -10,14 +10,14 @@ Suffice to say, ICARUS does have such a facility available, and the data can be ## Writing data into StashCache Directory `/pnfs/icarus/persistent/stash` is owned by the collective user `icaruspro`. -For a user to be able to write in there, she can either: +For a user to be able to write in there, they can either: * log in a dCache-aware node (e.g. an [ICARUS GPVM](../Computing_Resources.md#where-to-work-interactive-nodes-gpvm)) as `icaruspro` via ssh icaruspro@icarusgpvm.fnal.gov using Kerberos authentication; this works only if that user is authorized - to present herself as `icaruspro` (which translates into her Kerberos principal + to present themselves as `icaruspro` (which translates into their Kerberos principal `user@FNAL.GOV` being listed in `~icaruspro/.k5login` file) * use IFDH (`ifdh cp`) to copy directly the data; this requires a [grid certificate proxy](../Get_a_certificate_proxy.md) diff --git a/sbndcode_wiki/Write_files_to_CVMFS.md b/sbndcode_wiki/Write_files_to_CVMFS.md index bd458d5bd..d2d10e5b1 100644 --- a/sbndcode_wiki/Write_files_to_CVMFS.md +++ b/sbndcode_wiki/Write_files_to_CVMFS.md @@ -95,7 +95,7 @@ As of October 2021, these people are blessed: - [Chris Hilgenberg](mailto:chilgenb@umn.edu) - [Vito Di Benedetto](mailto:vito@fnal.gov) -To add a user to the list, his/her Kerberos principal must be added to +To add a user to the list, their Kerberos principal must be added to `.k5login` file in the home directory of `cvmfssbnd`.\ Since January 2018, we can freely edit the list of authorised people and we are responsible of the maintenance of that list. diff --git a/woke_mind_virus.sh b/woke_mind_virus.sh new file mode 100755 index 000000000..c032d42b2 --- /dev/null +++ b/woke_mind_virus.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +# @file: woke_mind_virus.sh +# @bried: The true Gay Agenda (TM). +# @description: Replaces gendered English pronouns with gender-neutral +# equivalents. Notes and nuances are detailed below. + +# Note that the substitutions below do not take into account the context +# in which these words appear in a sentence. Ex. 'her' is changed to 'them' +# implicitly assuming 'her' appears as the indirect object of a sentence +# (e.g. She gave her a cup of tea.); however, 'her' can also indicate ownership +# (e.g. She put on her coat.). Feel free to adjust substitutions as needed. +# We have decided to keep 'her' --> 'them' since it has the added benefit of +# meshing well with reflexive pronouns (e.g. 'She herself did...' --> +# 'They themselves did... ). These types of ambiguities (specifically with the +# pronoun 'her', as it is used for many types of feminine pronouns) are less +# prominent when changing instances of, e.g., his/her to their. + +# Further ambiguity arises when one considers how the singular 'they' varies +# in a reflexive context. Some prefer to use 'themselves' while other prefer +# to use 'themself' when utilizing the singular, reflexive they. We use +# 'themselves' over 'themself' as it is more intuitive for non-native English +# speakers. + +# he/she --> they, etc. +grep -rlZ --include="*.txt" --include="*.md" --include="*.cpp" --include="*.h" --include="*.py" . | xargs -0 sed -i \ + -e 's/\bhe\/she\b/they/g' \ + -e 's/\bshe\/he\b/they/g' \ + -e 's/\bHe\/She\b/They/g' \ + -e 's/\bHe\/she\b/They/g' \ + -e 's/\bShe\/He\b/They/g' \ + -e 's/\bShe\/he\b/They/g' \ + -e 's/\bhe\b/they/g' \ + -e 's/\bshe\b/they/g' \ + -e 's/\bHe\b/They/g' \ + -e 's/\bShe\b/They/g' + +# him/her --> them, etc. +# @note: her --> them conflicts with her --> their, etc. +grep -rlZ --include="*.txt" --include="*.md" --include="*.cpp" --include="*.h" --include="*.py" . | xargs -0 sed -i \ + -e 's/\bhim\/her\b/them/g' \ + -e 's/\bher\/him\b/them/g' \ + -e 's/\bHim\/Her\b/Them/g' \ + -e 's/\bHim\/her\b/Them/g' \ + -e 's/\bHer\/Him\b/Them/g' \ + -e 's/\bHer\/him\b/Them/g' \ + -e 's/\bhim\b/them/g' \ + -e 's/\bher\b/them/g' \ + -e 's/\bHim\b/Them/g' \ + -e 's/\bHer\b/Them/g' + +# his/her --> their, etc. +# @note: her --> their conflicts with her --> them, etc. +grep -rlZ --include="*.txt" --include="*.md" --include="*.cpp" --include="*.h" --include="*.py" . | xargs -0 sed -i \ + -e 's/\bhis\/her\b/their/g' \ + -e 's/\bher\/his\b/their/g' \ + -e 's/\bHis\/Her\b/Their/g' \ + -e 's/\bHis\/her\b/Their/g' \ + -e 's/\bHer\/His\b/Their/g' \ + -e 's/\bHer\/his\b/Their/g' \ + -e 's/\bhis\b/their/g' \ + -e 's/\bHis\b/Their/g' + +# his/hers --> theirs, etc. +grep -rlZ --include="*.txt" --include="*.md" --include="*.cpp" --include="*.h" --include="*.py" . | xargs -0 sed -i \ + -e 's/\bhis\/hers\b/theirs/g' \ + -e 's/\bhers\/his\b/theirs/g' \ + -e 's/\bHis\/Hers\b/Theirs/g' \ + -e 's/\bHis\/hers\b/Theirs/g' \ + -e 's/\bHers\/His\b/Theirs/g' \ + -e 's/\bHers\/his\b/Theirs/g' \ + -e 's/\bhers\b/theirs/g' \ + -e 's/\bHers\b/Theirs/g' + +# himself/herself --> themselves, etc. +grep -rlZ --include="*.txt" --include="*.md" --include="*.cpp" --include="*.h" --include="*.py" . | xargs -0 sed -i \ + -e 's/\bhimself\/herself\b/themselves/g' \ + -e 's/\bherself\/himself\b/themselves/g' \ + -e 's/\bHimself\/Herself\b/Themselves/g' \ + -e 's/\bHimself\/herself\b/Themselves/g' \ + -e 's/\bHerself\/Himself\b/Themselves/g' \ + -e 's/\bHerself\/himself\b/Themselves/g' \ + -e 's/\bhimself\b/themselves/g' \ + -e 's/\bherself\b/themselves/g' \ + -e 's/\bHimself\b/Themselves/g' \ + -e 's/\bHerself\b/Themselves/g' From 6f14e245944259da2180b8dcb54d16b1eb360f98 Mon Sep 17 00:00:00 2001 From: Jacob Smith Date: Fri, 6 Mar 2026 21:12:07 -0500 Subject: [PATCH 1407/1437] Update user years in Write_files_to_CVMFS.md Updated user information with estimated years for Leo Aliaga-Soplin and Vito Di Benedetto. --- icaruscode_wiki/Write_files_to_CVMFS.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/icaruscode_wiki/Write_files_to_CVMFS.md b/icaruscode_wiki/Write_files_to_CVMFS.md index 2fa5d8e35..a43f09b40 100644 --- a/icaruscode_wiki/Write_files_to_CVMFS.md +++ b/icaruscode_wiki/Write_files_to_CVMFS.md @@ -99,9 +99,8 @@ Tracy Usher (usher at slac dot stanford dot edu) | The Stone Age Wes Ketchum (wketchum at fnal dot gov) | 2016 Gianluca Petrillo (petrillo at slac dot stanford dot edu) | 2017 Jacob Smith (jacob dot a dot smith at stonybrook dot edu) | 2026 -Leo Aliaga-Soplin | unknown -Vito Di Benedetto | unknown -Sergey Martynenko | unknown +Leo Aliaga-Soplin | 2025 (?) +Vito Di Benedetto | 2025 (?) From 5a11786da80e4381ffe32d35a02664ab884a7f9e Mon Sep 17 00:00:00 2001 From: mattfcs Date: Mon, 9 Mar 2026 13:14:49 -0400 Subject: [PATCH 1408/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 7be7c517a..3738ee5c9 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -63,6 +63,8 @@ Monte Carlo official SBN Production Samples | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | +| GIBUU BNB + Cosmics - gen1 | SBND2026A | v10_06_00_09 | ~200k | reco1 | mc_SBND2026A_gen1_prodgenie_corsika_proton_rockbox_sbnd_GIBUU_CV_v10_06_00_09_reco1_sbnd | +| --- | --- | --- | --- | flatcaf | mc_SBND2026A_gen1_prodgenie_corsika_proton_rockbox_sbnd_GIBUU_CV_v10_06_00_09_flatcaf_sbnd | | Fall Production 2025 (gen2) - BNB Light - 2e19 POT | SBND2025C | v10_14_02 | ~1M | reco1 | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_reco1_sbnd | | --- | --- | --- | --- | larcv | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_larcvreco1_sbnd | | --- | --- | --- | --- | calib ntuple | mc_MCP2025C_FallProduction_prodgenie_corsika_proton_rockbox0p1_sbnd_CV_v10_14_02_histreco2_sbnd | From c87cec0ed5749652c401de3dd0b94432f2774160 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:15:45 -0400 Subject: [PATCH 1409/1437] Revise Generation 2 Analyses section formatting Updated section headers and added emphasis for Generation 2 analyses. --- sbn/sbnprod_wiki/analysis.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 4b0acbedd..90cd34b74 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -23,16 +23,21 @@ Here is what is listed for each sample: 4. fcls? 5. +
-# Generation 2 Analyses -Description of what is different with the Gen 2 analyses +Generation 2 Analyses +
-## Data +> Description of what is different with the Gen 2 analyses + + +## Data (Unblinded) + +**Run 1 Analysis Development Sample (Fix + Rolling):** ### BNB + Light Data -Here is all the information for BNB + Light ### Zero Bias Data From faf2333c97bfe81ec51602dafcc213fed125ce7e Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:17:48 -0400 Subject: [PATCH 1410/1437] Update header formatting for Generation 2 Analyses --- sbn/sbnprod_wiki/analysis.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 90cd34b74..1275eb35f 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -25,7 +25,7 @@ Here is what is listed for each sample:
-Generation 2 Analyses +# Generation 2 Analyses
From 6bafaa203fe1c5b18dbe63c692d437acfc352a44 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:27:04 -0400 Subject: [PATCH 1411/1437] Enhance Generation 2 analysis documentation Added details for Generation 2 analyses and updated data samples for BNB + Light and OffBeam + Light. --- sbn/sbnprod_wiki/analysis.md | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 1275eb35f..57ec63dd2 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -24,24 +24,41 @@ Here is what is listed for each sample: 5.
- # Generation 2 Analyses -
> Description of what is different with the Gen 2 analyses ## Data (Unblinded) +> Unblinded data is available for use and doesn't need access requests? +### BNB + Light Data +> Anything unique or should be known about BNB+Light? Main neutrino stream... **Run 1 Analysis Development Sample (Fix + Rolling):** +**calibntuples:** data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd + +**Rolling Sample:** +**reco1:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd +**caf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd +**flatcaf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd + +**Fixed Dev:** +**reco1:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd +**caf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd +**flatcaf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd + +### OffBeam + Light Data +> This sample should be combined with BNB+Light for cosmic estimation +**Development Sample** +**calibntuples:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd +**caf:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd +**flatcaf:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd -### BNB + Light Data ### Zero Bias Data -### OffBeam + Light Data ### OffBeam Zero Bias Data From 138fcc63d6eeb7c04616558a515a93796ceeb876 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:28:36 -0400 Subject: [PATCH 1412/1437] Format updates in analysis.md for clarity --- sbn/sbnprod_wiki/analysis.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 57ec63dd2..8fa5aee82 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -35,25 +35,26 @@ Here is what is listed for each sample: ### BNB + Light Data > Anything unique or should be known about BNB+Light? Main neutrino stream... -**Run 1 Analysis Development Sample (Fix + Rolling):** -**calibntuples:** data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd +**Run 1 Analysis Development Sample (Fix + Rolling):** +**calibntuples:** data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd -**Rolling Sample:** +**Rolling Sample:** **reco1:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd **caf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd **flatcaf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd -**Fixed Dev:** -**reco1:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd -**caf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd -**flatcaf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd +**Fixed Dev:** +**reco1:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd +**caf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd +**flatcaf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd -### OffBeam + Light Data +### OffBeam + Light Data > This sample should be combined with BNB+Light for cosmic estimation -**Development Sample** -**calibntuples:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd -**caf:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd -**flatcaf:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd + +**Development Sample** +**calibntuples:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd +**caf:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd +**flatcaf:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd From c8c20b4ad3f72579637880fef1128078bcee8e2b Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:30:20 -0400 Subject: [PATCH 1413/1437] Add header for Generation 2 Analyses section Added section header for Generation 2 Analyses. --- sbn/sbnprod_wiki/analysis.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 8fa5aee82..95e846d2c 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -24,7 +24,9 @@ Here is what is listed for each sample: 5.
+ # Generation 2 Analyses +
> Description of what is different with the Gen 2 analyses From 4c4c8128d471e9608038932ae6e1b23bde6db4c8 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:33:27 -0400 Subject: [PATCH 1414/1437] Fix wording and clarify sample usage in analysis.md Corrected phrasing regarding access requests for unblinded data and added clarifications for sample usage in analysis. --- sbn/sbnprod_wiki/analysis.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 95e846d2c..0b33eb591 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -33,7 +33,9 @@ Here is what is listed for each sample: ## Data (Unblinded) -> Unblinded data is available for use and doesn't need access requests? +> Unblinded data is available for use and doesn't require access requests? + + ### BNB + Light Data > Anything unique or should be known about BNB+Light? Main neutrino stream... @@ -41,11 +43,17 @@ Here is what is listed for each sample: **calibntuples:** data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd **Rolling Sample:** +> Check this DocDB for samples used for Rolling Sample +> When should this be used over other samples? + **reco1:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd **caf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd **flatcaf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd **Fixed Dev:** +> Check this DocDB for samples used in Fixed Development Sample +> When should this be used over other samples + **reco1:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd **caf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd **flatcaf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd From d8ed439b9ad343dd90a9f6f7ae35234e6d610ac6 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 09:41:29 -0400 Subject: [PATCH 1415/1437] Fix formatting and clarify data availability in analysis.md --- sbn/sbnprod_wiki/analysis.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 0b33eb591..dbd7fa15b 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -33,7 +33,7 @@ Here is what is listed for each sample: ## Data (Unblinded) -> Unblinded data is available for use and doesn't require access requests? +>> Unblinded data is available for use and doesn't require access requests? ### BNB + Light Data @@ -43,7 +43,7 @@ Here is what is listed for each sample: **calibntuples:** data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd **Rolling Sample:** -> Check this DocDB for samples used for Rolling Sample +> Check this DocDB for samples used for Rolling Sample > When should this be used over other samples? **reco1:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd @@ -51,7 +51,7 @@ Here is what is listed for each sample: **flatcaf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd **Fixed Dev:** -> Check this DocDB for samples used in Fixed Development Sample +> Check this DocDB for samples used in Fixed Development Sample > When should this be used over other samples **reco1:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd From a4a1273a87df163ce39efb5d1bf5d11bd4c7b697 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:04:44 -0400 Subject: [PATCH 1416/1437] Revise Generation 2 analyses and data product details Updated Generation 2 analyses section with detailed data usage and access notes. Added new formatting and structured data product information for clarity. --- sbn/sbnprod_wiki/analysis.md | 64 ++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index dbd7fa15b..6f9e81027 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -21,7 +21,8 @@ Here is what is listed for each sample: 2. which runs are used: time frame or d 3. code versions 4. fcls? -5. + +---
@@ -31,9 +32,10 @@ Here is what is listed for each sample: > Description of what is different with the Gen 2 analyses +--- ## Data (Unblinded) ->> Unblinded data is available for use and doesn't require access requests? +> Unblinded data is available for use and doesn't require access requests? ### BNB + Light Data @@ -77,6 +79,64 @@ Here is what is listed for each sample: + + + + + + +--- + +# 🧬 Generation 2 Analyses + +> **Note on Gen 2:** *[Insert description here regarding what distinguishes Gen 2 from previous iterations, such as updated reconstruction algorithms or new calibration constants.]* + +--- + +## 📂 Data (Unblinded) + +> [!IMPORTANT] +> **Access Status:** Unblinded data is available for general use. Please verify if your specific analysis requires formal access requests before processing. + +### 1. BNB + Light Data +*The primary neutrino stream for SBND physics analysis.* + +**Run 1 Analysis Development Sample (Fix + Rolling)** +* **calibntuples:** `data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd` + +#### **Rolling Sample** +> **Documentation:** Check the relevant DocDB for the specific run list used in the Rolling Sample. +> **Usage:** *[Insert guidance on when this should be used over other samples.]* + +| Data Product | Sample Path/Name | +| :--- | :--- | +| **reco1** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd` | +| **caf** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd` | +| **flatcaf** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd` | + +#### **Fixed Dev Sample** +> **Documentation:** Check the relevant DocDB for the specific run list used in the Fixed Development Sample. +> **Usage:** *[Insert guidance on when this should be used over the Rolling sample.]* + +| Data Product | Sample Path/Name | +| :--- | :--- | +| **reco1** | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd` | +| **caf** | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd` | +| **flatcaf** | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd` | + +--- + +### 2. OffBeam + Light Data +> **Integration Note:** This sample is intended to be combined with **BNB+Light** data for accurate cosmic background estimation. + +**Development Sample Reference:** +* **calibntuples:** `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd` +* **caf:** `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd` +* **flatcaf:** `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd` + + + + # Generation 1 Analyses What is included in Gen 1 analyses? From c834738c06cb54cc3390eceaaa342b0a124630c7 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:26:28 -0400 Subject: [PATCH 1417/1437] Update Generation 2 analyses formatting and content --- sbn/sbnprod_wiki/analysis.md | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 6f9e81027..e67c534f3 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -87,16 +87,20 @@ Here is what is listed for each sample: --- -# 🧬 Generation 2 Analyses +
+ +# Generation 2 Analyses + +
> **Note on Gen 2:** *[Insert description here regarding what distinguishes Gen 2 from previous iterations, such as updated reconstruction algorithms or new calibration constants.]* --- -## 📂 Data (Unblinded) +## Data (Unblinded) + +> Unblinded data is available for use and doesn't require access requests? -> [!IMPORTANT] -> **Access Status:** Unblinded data is available for general use. Please verify if your specific analysis requires formal access requests before processing. ### 1. BNB + Light Data *The primary neutrino stream for SBND physics analysis.* @@ -108,7 +112,7 @@ Here is what is listed for each sample: > **Documentation:** Check the relevant DocDB for the specific run list used in the Rolling Sample. > **Usage:** *[Insert guidance on when this should be used over other samples.]* -| Data Product | Sample Path/Name | +| Stage | Sample Definition | | :--- | :--- | | **reco1** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd` | | **caf** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd` | @@ -118,7 +122,7 @@ Here is what is listed for each sample: > **Documentation:** Check the relevant DocDB for the specific run list used in the Fixed Development Sample. > **Usage:** *[Insert guidance on when this should be used over the Rolling sample.]* -| Data Product | Sample Path/Name | +| Stage | Sample Definition | | :--- | :--- | | **reco1** | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd` | | **caf** | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd` | @@ -129,11 +133,13 @@ Here is what is listed for each sample: ### 2. OffBeam + Light Data > **Integration Note:** This sample is intended to be combined with **BNB+Light** data for accurate cosmic background estimation. -**Development Sample Reference:** -* **calibntuples:** `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd` -* **caf:** `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd` -* **flatcaf:** `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd` +#### **Development Sample Reference:** +| Stage | Sample Definition | +| :--- | :--- | +| **calibntuples** | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd` | +| **caf** | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd` | +| **flatcaf** | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd` | From ddbf0afdfd4f630136047fc80ca20e9ac310f97e Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:29:54 -0400 Subject: [PATCH 1418/1437] Revise Generation 2 Analyses and data samples Updated Generation 2 Analyses section with new data samples and documentation guidance. --- sbn/sbnprod_wiki/analysis.md | 68 ++++-------------------------------- 1 file changed, 7 insertions(+), 61 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index e67c534f3..2ea45efe3 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -22,66 +22,12 @@ Here is what is listed for each sample: 3. code versions 4. fcls? ---- - -
- -# Generation 2 Analyses - -
- -> Description of what is different with the Gen 2 analyses - ---- - -## Data (Unblinded) -> Unblinded data is available for use and doesn't require access requests? - - -### BNB + Light Data -> Anything unique or should be known about BNB+Light? Main neutrino stream... - -**Run 1 Analysis Development Sample (Fix + Rolling):** -**calibntuples:** data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd - -**Rolling Sample:** -> Check this DocDB for samples used for Rolling Sample -> When should this be used over other samples? - -**reco1:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd -**caf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd -**flatcaf:** data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd - -**Fixed Dev:** -> Check this DocDB for samples used in Fixed Development Sample -> When should this be used over other samples - -**reco1:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd -**caf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd -**flatcaf:** data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd - -### OffBeam + Light Data -> This sample should be combined with BNB+Light for cosmic estimation - -**Development Sample** -**calibntuples:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd -**caf:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd -**flatcaf:** data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd - - - -### Zero Bias Data - - -### OffBeam Zero Bias Data - -## MC - - - - - +What is found in each file: +calibntuples: +reco1: +caf: +flatcaf: @@ -109,7 +55,7 @@ Here is what is listed for each sample: * **calibntuples:** `data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd` #### **Rolling Sample** -> **Documentation:** Check the relevant DocDB for the specific run list used in the Rolling Sample. +> **Documentation:** Check the relevant DocDB for the specific run list used in the Rolling Sample. > **Usage:** *[Insert guidance on when this should be used over other samples.]* | Stage | Sample Definition | @@ -119,7 +65,7 @@ Here is what is listed for each sample: | **flatcaf** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd` | #### **Fixed Dev Sample** -> **Documentation:** Check the relevant DocDB for the specific run list used in the Fixed Development Sample. +> **Documentation:** Check the relevant DocDB for the specific run list used in the Fixed Development Sample. > **Usage:** *[Insert guidance on when this should be used over the Rolling sample.]* | Stage | Sample Definition | From 119bf5ac8cb3e2a536f33a59fa49498f8602e43b Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:30:36 -0400 Subject: [PATCH 1419/1437] Modify title for Generation 2 Analyses Updated the title for Generation 2 Analyses section. --- sbn/sbnprod_wiki/analysis.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 2ea45efe3..4e4551e4a 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -35,7 +35,7 @@ flatcaf:
-# Generation 2 Analyses + Generation 2 Analyses
From cc1df6a68c29c734cd4f26d067b8ffe8e890f3a5 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:36:43 -0400 Subject: [PATCH 1420/1437] Update analysis.md --- sbn/sbnprod_wiki/analysis.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 4e4551e4a..f1f785d3a 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -23,7 +23,8 @@ Here is what is listed for each sample: 4. fcls? -What is found in each file: + + calibntuples: reco1: caf: @@ -35,7 +36,7 @@ flatcaf:
- Generation 2 Analyses +# Generation 2 Analyses
@@ -51,7 +52,7 @@ flatcaf: ### 1. BNB + Light Data *The primary neutrino stream for SBND physics analysis.* -**Run 1 Analysis Development Sample (Fix + Rolling)** +#### **Run 1 Analysis Development Sample (Fix + Rolling)** * **calibntuples:** `data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd` #### **Rolling Sample** From 66e294ae0229488165924d0b296725caa32eb502 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:42:48 -0400 Subject: [PATCH 1421/1437] Update analysis.md with clearer sample descriptions Clarify the definition of runs and add headings for sample components. --- sbn/sbnprod_wiki/analysis.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index f1f785d3a..a4bed9693 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -18,17 +18,18 @@ SBN Production Available Samples Descriptions- Here is what is listed for each sample: 1. short description of sample, what it's used for, how to use it, general notes on usage -2. which runs are used: time frame or d +2. which runs are used: time frame or cuts to make definition 3. code versions 4. fcls? +#### What is in each sample: -calibntuples: -reco1: -caf: -flatcaf: +calibntuples: +reco1: +caf: +flatcaf: From dcadc91386f1bfc5ed897db448b3cdded7d7cbc3 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:47:43 -0400 Subject: [PATCH 1422/1437] Add code version to sample definitions in analysis.md --- sbn/sbnprod_wiki/analysis.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index a4bed9693..19b139f96 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -60,21 +60,21 @@ flatcaf: > **Documentation:** Check the relevant DocDB for the specific run list used in the Rolling Sample. > **Usage:** *[Insert guidance on when this should be used over other samples.]* -| Stage | Sample Definition | -| :--- | :--- | -| **reco1** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd` | -| **caf** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd` | -| **flatcaf** | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd` | +| Stage | Code Version | Sample Definition | +| :--- | :--- | :--- | +| **reco1** | v10_14_02 |`data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd` | +| **caf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd` | +| **flatcaf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd` | #### **Fixed Dev Sample** > **Documentation:** Check the relevant DocDB for the specific run list used in the Fixed Development Sample. > **Usage:** *[Insert guidance on when this should be used over the Rolling sample.]* -| Stage | Sample Definition | -| :--- | :--- | -| **reco1** | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd` | -| **caf** | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd` | -| **flatcaf** | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd` | +| Stage | Code Version | Sample Definition | +| :--- | :--- | :--- | +| **reco1** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd` | +| **caf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd` | +| **flatcaf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd` | --- @@ -83,11 +83,11 @@ flatcaf: #### **Development Sample Reference:** -| Stage | Sample Definition | -| :--- | :--- | -| **calibntuples** | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd` | -| **caf** | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd` | -| **flatcaf** | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd` | +| Stage | Code Version | Sample Definition | +| :--- | :--- | :--- | +| **calibntuples** | v10_14_02 | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd` | +| **caf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd` | +| **flatcaf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd` | From 04ffa2de83ea2ec0273434d185cf47d0ef7ab12d Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:52:02 -0400 Subject: [PATCH 1423/1437] Update headings for Generation 2 Analyses section --- sbn/sbnprod_wiki/analysis.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 19b139f96..963cadef0 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -37,7 +37,7 @@ flatcaf:
-# Generation 2 Analyses +## Generation 2 Analyses
@@ -45,18 +45,18 @@ flatcaf: --- -## Data (Unblinded) +### Data (Unblinded) > Unblinded data is available for use and doesn't require access requests? -### 1. BNB + Light Data +#### 1. BNB + Light Data (Unblinded) *The primary neutrino stream for SBND physics analysis.* -#### **Run 1 Analysis Development Sample (Fix + Rolling)** +##### **Run 1 Analysis Development Sample (Fix + Rolling)** * **calibntuples:** `data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd` -#### **Rolling Sample** +##### **Rolling Sample** > **Documentation:** Check the relevant DocDB for the specific run list used in the Rolling Sample. > **Usage:** *[Insert guidance on when this should be used over other samples.]* @@ -66,7 +66,7 @@ flatcaf: | **caf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd` | | **flatcaf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd` | -#### **Fixed Dev Sample** +##### **Fixed Dev Sample** > **Documentation:** Check the relevant DocDB for the specific run list used in the Fixed Development Sample. > **Usage:** *[Insert guidance on when this should be used over the Rolling sample.]* @@ -78,10 +78,10 @@ flatcaf: --- -### 2. OffBeam + Light Data +#### 2. OffBeam + Light Data (Unblinded) > **Integration Note:** This sample is intended to be combined with **BNB+Light** data for accurate cosmic background estimation. -#### **Development Sample Reference:** +##### **Development Sample Reference:** | Stage | Code Version | Sample Definition | | :--- | :--- | :--- | @@ -91,6 +91,11 @@ flatcaf: + + + + + # Generation 1 Analyses What is included in Gen 1 analyses? From b86f9a7f2ccacb432ab5ba73f2f42b3280bb51bb Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:53:38 -0400 Subject: [PATCH 1424/1437] Update analysis.md From e86fc40bda82bca81fbb9154b82c3c748bccce00 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 10 Mar 2026 11:13:56 -0400 Subject: [PATCH 1425/1437] Update headings in analysis.md for consistency --- sbn/sbnprod_wiki/analysis.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sbn/sbnprod_wiki/analysis.md b/sbn/sbnprod_wiki/analysis.md index 963cadef0..3a3f9133b 100644 --- a/sbn/sbnprod_wiki/analysis.md +++ b/sbn/sbnprod_wiki/analysis.md @@ -37,7 +37,7 @@ flatcaf:
-## Generation 2 Analyses +# Generation 2 Analyses
@@ -45,18 +45,18 @@ flatcaf: --- -### Data (Unblinded) +## Data (Unblinded) > Unblinded data is available for use and doesn't require access requests? -#### 1. BNB + Light Data (Unblinded) +### 1. BNB + Light Data (Unblinded) *The primary neutrino stream for SBND physics analysis.* -##### **Run 1 Analysis Development Sample (Fix + Rolling)** +#### **Run 1 Analysis Development Sample (Fix + Rolling)** * **calibntuples:** `data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd` -##### **Rolling Sample** +#### **Rolling Sample** > **Documentation:** Check the relevant DocDB for the specific run list used in the Rolling Sample. > **Usage:** *[Insert guidance on when this should be used over other samples.]* @@ -66,7 +66,7 @@ flatcaf: | **caf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd` | | **flatcaf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd` | -##### **Fixed Dev Sample** +#### **Fixed Dev Sample** > **Documentation:** Check the relevant DocDB for the specific run list used in the Fixed Development Sample. > **Usage:** *[Insert guidance on when this should be used over the Rolling sample.]* @@ -78,10 +78,10 @@ flatcaf: --- -#### 2. OffBeam + Light Data (Unblinded) +### 2. OffBeam + Light Data (Unblinded) > **Integration Note:** This sample is intended to be combined with **BNB+Light** data for accurate cosmic background estimation. -##### **Development Sample Reference:** +#### **Development Sample Reference:** | Stage | Code Version | Sample Definition | | :--- | :--- | :--- | From c27c2695940ba123ce068110f6d90430391c88f2 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 11 Mar 2026 09:39:06 -0400 Subject: [PATCH 1426/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 3738ee5c9..2f89fb358 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -61,6 +61,8 @@ Monte Carlo official SBN Production Samples ### SBND MC -------------------------- +For ongoing and analysis specific MC samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990) + | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | | GIBUU BNB + Cosmics - gen1 | SBND2026A | v10_06_00_09 | ~200k | reco1 | mc_SBND2026A_gen1_prodgenie_corsika_proton_rockbox_sbnd_GIBUU_CV_v10_06_00_09_reco1_sbnd | @@ -461,6 +463,8 @@ Data SBN Production Samples ### SBND DATA -------------------------- +For ongoing and analysis specific DATA samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990) + | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | | Run2 - gen1 (spring 2025) - BNB+light Fixed Dev | v10_06_00_09 | ~2k files | raw | SBND_DATA_Run2_FixedDev_Raw | From 8a34c5dac28b0da92ed9700adabca312a459e19b Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 11 Mar 2026 09:53:28 -0400 Subject: [PATCH 1427/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 2f89fb358..5c63e40bf 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -61,7 +61,7 @@ Monte Carlo official SBN Production Samples ### SBND MC -------------------------- -For ongoing and analysis specific MC samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990) +For ongoing and analysis specific MC samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990)samweb -e sbnd | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | @@ -463,7 +463,7 @@ Data SBN Production Samples ### SBND DATA -------------------------- -For ongoing and analysis specific DATA samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990) +For ongoing and analysis specific DATA samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990)samweb -e sbnd | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | From 3552c82f88664898416e0ecbf1eeede6660327d4 Mon Sep 17 00:00:00 2001 From: mattfcs Date: Wed, 11 Mar 2026 09:58:41 -0400 Subject: [PATCH 1428/1437] Update sample.md --- sbn/sbnprod_wiki/sample.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn/sbnprod_wiki/sample.md b/sbn/sbnprod_wiki/sample.md index 5c63e40bf..dad63f126 100644 --- a/sbn/sbnprod_wiki/sample.md +++ b/sbn/sbnprod_wiki/sample.md @@ -61,7 +61,7 @@ Monte Carlo official SBN Production Samples ### SBND MC -------------------------- -For ongoing and analysis specific MC samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990)samweb -e sbnd +For ongoing and analysis specific MC samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990) | Sample Description | production push | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | --- | @@ -463,7 +463,7 @@ Data SBN Production Samples ### SBND DATA -------------------------- -For ongoing and analysis specific DATA samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990)samweb -e sbnd +For ongoing and analysis specific DATA samples information please access [this document for gen1 (spring 2025)](https://docs.google.com/document/d/1oODQpwODFhpfk7zSfVG0x_YllFt5TLsWsUGJIKAqoGI/edit?tab=t.0#heading=h.xrtnnseitd1t) and [this document for gen2 (fall 2025)](https://docs.google.com/document/d/1lOnvP7gMBJFHt85zKisvpGartl4eIAAlwhTWlxGs9QI/edit?tab=t.0#heading=h.vw29zbd9h990) | Sample Description | release version | # Events | File type | Samweb definition | | --- | --- | --- | --- | --- | From 5f1c86bd6b8146f3243c7c50492ec5bfed560903 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 16 Mar 2026 09:56:06 -0500 Subject: [PATCH 1429/1437] Add new release v10_20_03 to release list --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index f20a5dd16..a82ae071a 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v10_20_03`. | Patch release | [Release Notes](ReleaseNotes102003.md) |`v10_14_02_02`. | Patch release | [Release Notes](ReleaseNotes10140202.md) |`v10_06_00_10`. | Patch release | [Release Notes](ReleaseNotes10060010.md) |`v10_14_00_01`. | Patch release | [Release Notes](ReleaseNotes10140001.md) From bd0c5fa47483ce0d53bd4ae3e0c53300068d42a0 Mon Sep 17 00:00:00 2001 From: nathanielerowe <70993723+nathanielerowe@users.noreply.github.com> Date: Mon, 16 Mar 2026 09:58:47 -0500 Subject: [PATCH 1430/1437] Add release notes for sbndcode v10.20.03 Add release notes for sbndcode v10.20.03, detailing new features, bug fixes, and updates. --- sbndcode_wiki/Releases/ReleaseNotes102003.md | 185 +++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes102003.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes102003.md b/sbndcode_wiki/Releases/ReleaseNotes102003.md new file mode 100644 index 000000000..e85c97bc6 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes102003.md @@ -0,0 +1,185 @@ +--- +layout: page +title: ReleaseNotes102003 +toc: true +--- + +----------------------------------------------------------------------------- +| v10.20.03 | 16 Mar 2026 | [ReleaseNotes](ReleaseNotes102003.html) | +| --- | --- | --- | + + + +sbndcode v10_20_03 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v10_20_03](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v10_20_03/sbndcode-v10_20_03.html) + +Purpose +--------------------------------------------------- + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- + +Supported qualifiers +--------------------------------------------------- + +Change List +========================================== +- PR #847: X-ARAPUCA Offline Decoder Update: combination of the extended fragments + - **Description**: - Implements the combination of the **extended fragments** in the X-ARAPUCA offline decoder. + - **Labels**: enhancement, pds, data + - **Reviewers**: jicrespo + - **Assignees**: aliciavr +- PR #907: Pandora bugfix - Shower merging algorithm + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: bug, reco1/reco2 + - **Reviewers**: + - **Assignees**: aliciavr +- PR #903: build with geant4 v4_11_2_p02 + - **Description**: + - **Labels**: + - **Reviewers**: + - **Assignees**: +- PR #916: CRT Blobs + - **Description**: I am starting to put together slides and PRs to preserve work of mine that lives offline before I leave. The CRTBlob reconstruction aims to produce objects that represent the totality of all activity happening within a fcl-configurable coincidence window. They are similar to CRTTracks but without geometric track constraints, and as such can capture all activity from a single source, for example when multiple particles from the same air shower are detected or secondary particles are produced from the muon scattering. It was used to produce a plot for the detector paper and is therefore worth preserving. It is not run by default in production fcls but does provide fcls for running it independently in the CRT-only workflow or standalone. Nothing prevents it being added to production fcls in future if it is desired for any analyses. + - **Labels**: crt, reco1/reco2 + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #917: CRT Saturation + - **Description**: I am starting to put together slides and PRs to preserve work of mine that lives offline before I leave. The CRT ADC saturates at a value of 4089 in data, compared to the 4095 we have been simulating. This PR changes that default value and also ensures that the mechanism to label a saturated channel in the CRTStripHit reconstruction is resilient to this change, and that the pedestal subtraction doesn't impact that. + - **Labels**: crt, detsim, reco1/reco2, data + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #921: Updating Memory and CPU Usage Error Bounds for CI Tests + - **Description**: Please provide a detailed description of the changes this pull request introduces. + - **Labels**: maintenance + - **Reviewers**: vitodb, nathanielerowe + - **Assignees**: SabrinaBrickner +- PR #920: CRT Analysis Tools + - **Description**: I am starting to put together slides and PRs to preserve work of mine that lives offline before I leave. This PR contains a few small updates to the CRTAnalyzer that forms the CRT section of the calibration ntuple files. - Adding the option for analysing CRT Blobs - Replace the rewrite of the timing corrections with calls to the actual functionality in the reconstruction - Include two missing branches from the TPC-CRT matching section. It also adds three new analyzers that will not be run by standard but provide useful tools for future analysis and reproduction of studies that I've done. It should be merged following SBNSoftware/sbndcode916 and SBNSoftware/sbnobj167 as it requires their functionality. Details can be found in slides linked below. + - **Labels**: documentation, enhancement, crt + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #918: CRT Channel Mapping Event Displays + - **Description**: I am starting to put together slides and PRs to preserve work of mine that lives offline before I leave. This PR contains updates to provide the functionality to make the CRT channel mapping event displays that we have used to create the channel map and then check it after each GDML update (see [docDB 34844](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=34844)). Specifically this introduces a new analyzer to run the existing CRTEventDisplayAlg in a custom mode, fcls to support this, a bash script for creating the plot dump file and a version of the channel map file that ensures the visualisation is created in the 'default' orientation. How to use this is documented in the docDB slides linked below. + - **Labels**: crt, geometry + - **Reviewers**: + - **Assignees**: henrylay97 +- PR #909: Pandora CI cluster metrics + - **Description**: This pull request adds new fcl and Pandora XML configurations to support direct production of Pandora metrics within the continuous integration system. Provisionally, these contain a number of basic cluster metrics (ARI, purity, completeness, etc), but could in principle be extended in the future. The ci_reco2_sbnd.fcl inherits from standard_reco2_sbnd.fcl and makes the minimal changes to the Pandora configuration for this workflow to run. The PandoraSettings_CI_SBND.xml mirrors the current PandoraSettings_Master_SBND.xml. Unfortunately, because this can't inherit a workflow, so it will be necessary to ensure suitable syncrhonisation between the CI XML and the standard Master XML if the Master XML changes (the CI XML removes the visualisation algorithms and adds the cluster validation algorithm). However, the Master XML is the most stable part of the configuration, and so changes here should be relatively rare. + - **Labels**: enhancement, test, reco1/reco2 + - **Reviewers**: miquelnebot, justinjmueller, SergioYB + - **Assignees**: AndyChappell + +sbndcode sbndcode +--------------------------------------------------- +* 2026-03-16 Nathaniel : Merge branch 'release/v10_20_03' +* 2026-03-16 Nathaniel : Update versioning +* 2026-03-13 nathanielerowe : Merge pull request #909 from SBNSoftware/feature/chappell_ci_pandora_clstr +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/chappell_ci_pandora_clstr +* 2026-03-13 nathanielerowe : Merge pull request #918 from SBNSoftware/feature/hlay_crt_channel_map_evds +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_channel_map_evds +* 2026-03-13 nathanielerowe : Merge pull request #920 from SBNSoftware/feature/hlay_crt_ana +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_ana +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_channel_map_evds +* 2026-03-13 nathanielerowe : Update sbncode version to v10_20_03 +* 2026-03-13 nathanielerowe : Merge pull request #921 from SBNSoftware/ci_memory_updates +* 2026-03-13 nathanielerowe : Merge branch 'develop' into ci_memory_updates +* 2026-03-13 nathanielerowe : Merge pull request #917 from SBNSoftware/feature/hlay_crt_saturation +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_saturation +* 2026-03-13 nathanielerowe : Merge pull request #916 from SBNSoftware/feature/hlay_crt_blobs +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_blobs +* 2026-03-13 nathanielerowe : Merge pull request #903 from lgarren/feature/lg_geant4_11 +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/lg_geant4_11 +* 2026-03-13 nathanielerowe : Merge pull request #907 from SBNSoftware/bugfix/PandoraNeutrinoSettingsShowerMergingReordering +* 2026-03-13 nathanielerowe : Merge branch 'develop' into bugfix/PandoraNeutrinoSettingsShowerMergingReordering +* 2026-03-13 nathanielerowe : Merge pull request #847 from SBNSoftware/feature/aliciavr_XARAPUCA_offline_decoder_v4.0-extended_fragments +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/aliciavr_XARAPUCA_offline_decoder_v4.0-extended_fragments +* 2026-03-13 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_ana +* 2026-03-07 Sabrina Brickner : updating memory and cpu usage error bounds for CI tests +* 2026-03-05 nathanielerowe : Merge branch 'develop' into feature/hlay_crt_channel_map_evds +* 2026-03-05 Henry Lay : Make safer - at John's suggestion +* 2026-03-05 Henry Lay : Add README to point to documentation +* 2026-03-05 Henry Lay : If we're going to do comments lets get them right +* 2026-03-05 Henry Lay : Add track direction branches to spacepoint timing tree +* 2026-03-03 Henry Lay : Add xshift for CRT-TPC track matching +* 2026-03-03 Henry Lay : Add rate for tracks of limited angle +* 2026-02-27 Henry Lay : Correct some very old naming problems +* 2026-02-27 Henry Lay : Reduce code duplication +* 2026-02-27 Henry Lay : Remove reference to my data area +* 2026-02-27 Henry Lay : Remove unnecessary tophat analysis module +* 2026-02-26 Henry Lay : More sensible default for uint +* 2026-02-26 Henry Lay : Add a few missing branches +* 2026-02-25 Henry Lay : Add more reference shifts +* 2026-02-25 Henry Lay : Add TPC slice based variables +* 2026-02-25 Henry Lay : Make sure timing chain map is installed to path +* 2026-02-25 Henry Lay : Make fcl changes to run CRTTimingAnalysis +* 2026-02-25 Henry Lay : Add track content to CRTTimingAnalysis module, plus a few bugfixes to make run-able +* 2026-02-24 Henry Lay : Fill space point branches in timing analysis +* 2026-02-24 Henry Lay : Update channel map service to add timing chains +* 2026-02-24 Henry Lay : Refactor cluster characterisation to allow external use of timing corrections +* 2026-02-24 Henry Lay : Add skeleton for timing analysis +* 2026-02-23 nathanielerowe : Update sbncode version to v10_15_00 +* 2026-02-23 Henry Lay : Add relevant functions for ADRIFT to GeoService +* 2026-02-23 Henry Lay : Add CRTTopHatAnalysis - module for CRT beam top hat analysis +* 2026-02-23 Henry Lay : Add CRTRateAnalysis - module for CRT real time rate analysis +* 2026-02-23 Henry Lay : Add ADRIFT - module for CRT calibration +* 2026-02-23 Henry Lay : Missing branch from CRTAnalysis +* 2026-02-19 nathanielerowe : Update sbncode version to v10_14_02_03 +* 2026-02-23 Henry Lay : Ensure tex file is saved in correct area +* 2026-02-23 Henry Lay : Include table for no inversion channel map +* 2026-02-23 Henry Lay : Make consistent between fcl and bash script +* 2026-02-23 Henry Lay : Correctly name parameter +* 2026-02-23 Henry Lay : More configurable +* 2024-07-09 Henry Lay : Add functionality for turning off inversion - useful for the channel mapping event displays +* 2026-02-20 Henry Lay : Remove unnecessary fcl +* 2026-02-20 Henry Lay : Make compatible with current develop +* 2026-02-20 Henry Lay : Make tex script more configurable +* 2025-05-15 Henry Lay : Updated CRT channel mapping display +* 2025-01-27 Henry Lay : New round of channel map evds +* 2024-09-28 Henry Lay : Changes to channel map evd producer +* 2024-08-25 Henry Lay : New CRT gdml channel mapping evds +* 2024-06-24 Henry Lay : Update channel map evds to test David's updates +* 2024-02-06 Henry Lay : Z points North not South, duh +* 2024-02-06 Henry Lay : Add bash script for making pdf +* 2024-02-06 Henry Lay : Add channel mapping version of module and relevant config +* 2026-02-19 nathanielerowe : Merge branch 'develop' into feature/chappell_ci_pandora_clstr +* 2026-02-19 nathanielerowe : Update sbncode version to v10_14_02_03 +* 2026-02-18 Henry Lay : Manually check saturation +* 2026-02-17 Henry Lay : Clean up fcls +* 2026-02-17 Henry Lay : Add option for blob branches in CRTAnalysis module +* 2025-02-20 Henry Lay : Use saturation to correctly label strip hits +* 2025-02-20 Henry Lay : Change ADC saturation value to match data +* 2026-02-16 Henry Lay : Modernise CMakeLists +* 2025-04-03 Henry Lay : Add blobs to CRT only fcls +* 2025-04-03 Henry Lay : Add CRTBlob producer +* 2026-02-05 AndyChappell : Add synchronisation comment to Pandora Master xml +* 2026-02-05 AndyChappell : Add fcl and pandora xml to support cluster validation metrics in ci system +* 2026-02-03 Alicia Vázquez-Ramos : Restore the shower merging algorithm in another place to avoid inconsistent state of PFParticles (-1 track scores). +* 2026-02-02 nathanielerowe : Revise pull request template with new updates +* 2026-02-02 Nathaniel : Merge tag 'v10_14_02_02' into develop +* 2026-01-30 Lynn Garren : remove or disable files which reference LegacyLArG4 +* 2026-01-30 Lynn Garren : remove or disable files which reference LegacyLArG4 +* 2026-01-30 Lynn Garren : remove or disable files which reference LegacyLArG4 +* 2025-11-25 Alicia Vázquez-Ramos : Add warning for some unexpected types of fragments and fix fragments indexing. Improve jittering application. +* 2025-11-24 Alicia Vázquez-Ramos : Update combination condition with timing features integrating the expected jittering of the extended fragments. +* 2025-11-07 Alicia Vázquez-Ramos : Add jittering debug option and combine fragments option +* 2025-11-06 Alicia Vázquez-Ramos : First version of timing check implemented (some extended fragments do not fulfill the requirements +* 2025-11-05 Alicia Vázquez-Ramos : Add version number and update number of debug waveforms to 0 +* 2025-10-15 Alicia Vázquez-Ramos : Update SBN Document for reference +* 2025-10-15 Alicia Vázquez-Ramos : Add new comments for code documenting. New variable for debugging the extended fragments combination +* 2025-10-14 Alicia Vázquez-Ramos : Combine all extended fragments succesfully +* 2025-10-10 Alicia Vázquez-Ramos : Combine waveforms and correctly differentiates nominal from extended +* 2025-10-09 Alicia Vázquez-Ramos : Add dump waveforms function +* 2025-10-09 Alicia Vázquez-Ramos : Waveforms decoding function +* 2025-10-09 Alicia Vázquez-Ramos : Shift timing function +* 2025-10-09 Alicia Vázquez-Ramos : Setup to start extended fragments feature From 968fb23a18abf58e562ca8b5385cf760ca0d5d6f Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 24 Mar 2026 09:16:40 -0400 Subject: [PATCH 1431/1437] Testing New pages --- sbn/sbnprod_wiki/gen1_analyses.md | 32 ++++++++++++ sbn/sbnprod_wiki/gen1_data.md | 44 +++++++++++++++++ sbn/sbnprod_wiki/gen1_mc.md | 24 +++++++++ sbn/sbnprod_wiki/gen2_analyses.md | 32 ++++++++++++ sbn/sbnprod_wiki/gen2_data.md | 66 +++++++++++++++++++++++++ sbn/sbnprod_wiki/gen2_mc.md | 24 +++++++++ sbn/sbnprod_wiki/sample_descriptions.md | 41 +++++++++++++++ 7 files changed, 263 insertions(+) create mode 100644 sbn/sbnprod_wiki/gen1_analyses.md create mode 100644 sbn/sbnprod_wiki/gen1_data.md create mode 100644 sbn/sbnprod_wiki/gen1_mc.md create mode 100644 sbn/sbnprod_wiki/gen2_analyses.md create mode 100644 sbn/sbnprod_wiki/gen2_data.md create mode 100644 sbn/sbnprod_wiki/gen2_mc.md create mode 100644 sbn/sbnprod_wiki/sample_descriptions.md diff --git a/sbn/sbnprod_wiki/gen1_analyses.md b/sbn/sbnprod_wiki/gen1_analyses.md new file mode 100644 index 000000000..26cc8c4a3 --- /dev/null +++ b/sbn/sbnprod_wiki/gen1_analyses.md @@ -0,0 +1,32 @@ +--- +layout: page +title: Generation 1 Analyses +subtitle: SBN Production — Gen 1 Sample Descriptions +description: Generation 1 analysis samples for SBN analyzers +hero_height: is-medium +toc: true +toc_title: Gen 1 Analyses +--- + +
+ +# Generation 1 Analyses + +
+ +> *[Insert description here regarding what is included in Gen 1 analyses and how they differ from Gen 2.]* + +--- + +## Sample Categories + +| Category | Description | Link | +| :--- | :--- | :--- | +| **Data** | All Gen 1 data samples including BNB+Light, Zero Bias, OffBeam+Light, and OffBeam Zero Bias. | [View Data →](gen1_data) | +| **MC** | Monte Carlo simulation samples. | [View MC →](gen1_mc) | + +--- + +## Related Pages +- [← Back to Sample Descriptions](sample_descriptions) +- [Samples Page](sample) diff --git a/sbn/sbnprod_wiki/gen1_data.md b/sbn/sbnprod_wiki/gen1_data.md new file mode 100644 index 000000000..e0f701477 --- /dev/null +++ b/sbn/sbnprod_wiki/gen1_data.md @@ -0,0 +1,44 @@ +--- +layout: page +title: Generation 1 — Data +subtitle: SBN Production — Gen 1 Data Samples +description: Gen 1 data samples for SBN analyzers +hero_height: is-medium +toc: true +toc_title: Gen 1 Data +--- + +## Data + +> *[Insert overview of Gen 1 data samples here.]* + +--- + +## BNB + Light Data + +*[Insert all sample information, run lists, code versions, and FCLs for Gen 1 BNB + Light here.]* + +--- + +## Zero Bias Data + +*[Insert all sample information, run lists, code versions, and FCLs for Gen 1 Zero Bias here.]* + +--- + +## OffBeam + Light Data + +*[Insert all sample information, run lists, code versions, and FCLs for Gen 1 OffBeam + Light here.]* + +--- + +## OffBeam Zero Bias Data + +*[Insert all sample information, run lists, code versions, and FCLs for Gen 1 OffBeam Zero Bias here.]* + +--- + +## Related Pages +- [← Back to Gen 1 Analyses](gen1_analyses) +- [← Back to Sample Descriptions](sample_descriptions) +- [Samples Page](sample) diff --git a/sbn/sbnprod_wiki/gen1_mc.md b/sbn/sbnprod_wiki/gen1_mc.md new file mode 100644 index 000000000..9d137c80b --- /dev/null +++ b/sbn/sbnprod_wiki/gen1_mc.md @@ -0,0 +1,24 @@ +--- +layout: page +title: Generation 1 — MC +subtitle: SBN Production — Gen 1 Monte Carlo Samples +description: Gen 1 Monte Carlo simulation samples for SBN analyzers +hero_height: is-medium +toc: true +toc_title: Gen 1 MC +--- + +## Monte Carlo (MC) + +> *[Insert overview of Gen 1 MC samples here.]* + +--- + +*[Insert all MC sample information, code versions, generator configurations, and FCLs for Gen 1 here.]* + +--- + +## Related Pages +- [← Back to Gen 1 Analyses](gen1_analyses) +- [← Back to Sample Descriptions](sample_descriptions) +- [Samples Page](sample) diff --git a/sbn/sbnprod_wiki/gen2_analyses.md b/sbn/sbnprod_wiki/gen2_analyses.md new file mode 100644 index 000000000..85f2591f5 --- /dev/null +++ b/sbn/sbnprod_wiki/gen2_analyses.md @@ -0,0 +1,32 @@ +--- +layout: page +title: Generation 2 Analyses +subtitle: SBN Production — Gen 2 Sample Descriptions +description: Generation 2 analysis samples for SBN analyzers +hero_height: is-medium +toc: true +toc_title: Gen 2 Analyses +--- + +
+ +# Generation 2 Analyses + +
+ +> **Note on Gen 2:** *[Insert description here regarding what distinguishes Gen 2 from previous iterations, such as updated reconstruction algorithms or new calibration constants.]* + +--- + +## Sample Categories + +| Category | Description | Link | +| :--- | :--- | :--- | +| **Data** | Unblinded data samples including BNB+Light, OffBeam+Light, and related streams. | [View Data →](gen2_data) | +| **MC** | Monte Carlo simulation samples. | [View MC →](gen2_mc) | + +--- + +## Related Pages +- [← Back to Sample Descriptions](sample_descriptions) +- [Samples Page](sample) diff --git a/sbn/sbnprod_wiki/gen2_data.md b/sbn/sbnprod_wiki/gen2_data.md new file mode 100644 index 000000000..f5f1a7794 --- /dev/null +++ b/sbn/sbnprod_wiki/gen2_data.md @@ -0,0 +1,66 @@ +--- +layout: page +title: Generation 2 — Data (Unblinded) +subtitle: SBN Production — Gen 2 Data Samples +description: Gen 2 unblinded data samples for SBN analyzers +hero_height: is-medium +toc: true +toc_title: Gen 2 Data +--- + +## Data (Unblinded) + +> Unblinded data is available for use and doesn't require access requests. + +--- + +## BNB + Light Data + +*The primary neutrino stream for SBND physics analysis.* + +### Run 1 Analysis Development Sample (Fix + Rolling) + +* **calibntuples:** `data_MCP2025C_Fall25-Run1_BNB_Dev_bnblight_v10_14_02_histreco2_sbnd` + +### Rolling Sample + +> **Documentation:** Check the relevant DocDB for the specific run list used in the Rolling Sample. +> **Usage:** *[Insert guidance on when this should be used over other samples.]* + +| Stage | Code Version | Sample Definition | +| :--- | :--- | :--- | +| **reco1** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_reco1_sbnd` | +| **caf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_caf_sbnd` | +| **flatcaf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_RollingDev_bnblight_v10_14_02_flatcaf_sbnd` | + +### Fixed Dev Sample + +> **Documentation:** Check the relevant DocDB for the specific run list used in the Fixed Development Sample. +> **Usage:** *[Insert guidance on when this should be used over the Rolling sample.]* + +| Stage | Code Version | Sample Definition | +| :--- | :--- | :--- | +| **reco1** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_reco1_sbnd` | +| **caf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_caf_sbnd` | +| **flatcaf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_BNB_FixedDev_bnblight_v10_14_02_flatcaf_sbnd` | + +--- + +## OffBeam + Light Data + +> **Integration Note:** This sample is intended to be combined with **BNB+Light** data for accurate cosmic background estimation. + +### Development Sample Reference + +| Stage | Code Version | Sample Definition | +| :--- | :--- | :--- | +| **calibntuples** | v10_14_02 | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_histreco2_sbnd` | +| **caf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_caf_sbnd` | +| **flatcaf** | v10_14_02 | `data_MCP2025C_Fall25-Run1_InTime_offbeamlight_v10_14_02_flatcaf_sbnd` | + +--- + +## Related Pages +- [← Back to Gen 2 Analyses](gen2_analyses) +- [← Back to Sample Descriptions](sample_descriptions) +- [Samples Page](sample) diff --git a/sbn/sbnprod_wiki/gen2_mc.md b/sbn/sbnprod_wiki/gen2_mc.md new file mode 100644 index 000000000..ad51f7c30 --- /dev/null +++ b/sbn/sbnprod_wiki/gen2_mc.md @@ -0,0 +1,24 @@ +--- +layout: page +title: Generation 2 — MC +subtitle: SBN Production — Gen 2 Monte Carlo Samples +description: Gen 2 Monte Carlo simulation samples for SBN analyzers +hero_height: is-medium +toc: true +toc_title: Gen 2 MC +--- + +## Monte Carlo (MC) + +> *[Insert overview of Gen 2 MC samples here.]* + +--- + +*[Insert all MC sample information, code versions, generator configurations, and FCLs for Gen 2 here.]* + +--- + +## Related Pages +- [← Back to Gen 2 Analyses](gen2_analyses) +- [← Back to Sample Descriptions](sample_descriptions) +- [Samples Page](sample) diff --git a/sbn/sbnprod_wiki/sample_descriptions.md b/sbn/sbnprod_wiki/sample_descriptions.md new file mode 100644 index 000000000..02d0698c6 --- /dev/null +++ b/sbn/sbnprod_wiki/sample_descriptions.md @@ -0,0 +1,41 @@ +--- +layout: page +title: SBN Production Sample Descriptions +subtitle: Descriptions of SBN Production Samples +description: Wiki for the SBN Analyzers using Production Samples +hero_height: is-medium +toc: true +toc_title: SBN Production Sample Description +--- + +SBN Production Available Samples Descriptions +========================================== + +> Below we will include useful information for analyzers to understand what goes into each sample, as listed from the [Samples Page](https://sbnsoftware.github.io/sbn/sbnprod_wiki/sample). + +Here is what is listed for each sample: +1. Short description of sample, what it's used for, how to use it, general notes on usage +2. Which runs are used: time frame or cuts to make definition +3. Code versions +4. FCLs? + +#### What is in each sample: + +calibntuples: +reco1: +caf: +flatcaf: + +--- + +## Analysis Generations + +| Generation | Link | +| :--- | :--- | +| **Generation 2** | [View Gen 2 →](gen2_analyses) | +| **Generation 1** | [View Gen 1 →](gen1_analyses) | + +--- + +## Related Pages +- [Samples Page](sample) From 6b7deef835625078bef16e0b0f7eb7ee97c0207a Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 24 Mar 2026 09:46:07 -0400 Subject: [PATCH 1432/1437] Update header formatting in gen2_analyses.md --- sbn/sbnprod_wiki/gen2_analyses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/gen2_analyses.md b/sbn/sbnprod_wiki/gen2_analyses.md index 85f2591f5..7d4c6dc0a 100644 --- a/sbn/sbnprod_wiki/gen2_analyses.md +++ b/sbn/sbnprod_wiki/gen2_analyses.md @@ -10,7 +10,7 @@ toc_title: Gen 2 Analyses
-# Generation 2 Analyses + Generation 2 Analyses
From ea9087c16b50248918e8fb878a971f563a4ad740 Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 24 Mar 2026 09:49:59 -0400 Subject: [PATCH 1433/1437] Clean up Gen 2 Analyses markdown formatting Removed redundant header and div tags from Gen 2 Analyses section. --- sbn/sbnprod_wiki/gen2_analyses.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sbn/sbnprod_wiki/gen2_analyses.md b/sbn/sbnprod_wiki/gen2_analyses.md index 7d4c6dc0a..9c617cc6c 100644 --- a/sbn/sbnprod_wiki/gen2_analyses.md +++ b/sbn/sbnprod_wiki/gen2_analyses.md @@ -8,11 +8,7 @@ toc: true toc_title: Gen 2 Analyses --- -
- - Generation 2 Analyses - -
+

Generation 2 Analyses

> **Note on Gen 2:** *[Insert description here regarding what distinguishes Gen 2 from previous iterations, such as updated reconstruction algorithms or new calibration constants.]* From edf92fca7bef5f6bb1e03d49e77a8b6e0dd0ff8e Mon Sep 17 00:00:00 2001 From: Max Dubnowski <90648380+maxdubnowski@users.noreply.github.com> Date: Tue, 24 Mar 2026 10:08:32 -0400 Subject: [PATCH 1434/1437] Update header format for unblinded data section --- sbn/sbnprod_wiki/gen2_data.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbn/sbnprod_wiki/gen2_data.md b/sbn/sbnprod_wiki/gen2_data.md index f5f1a7794..d85b22a07 100644 --- a/sbn/sbnprod_wiki/gen2_data.md +++ b/sbn/sbnprod_wiki/gen2_data.md @@ -8,7 +8,8 @@ toc: true toc_title: Gen 2 Data --- -## Data (Unblinded) +

Data (Unblinded)

+ > Unblinded data is available for use and doesn't require access requests. From e1af334f9ea7fdf876a3109e7ffc7a04f9326021 Mon Sep 17 00:00:00 2001 From: acampani <110998076+acampani@users.noreply.github.com> Date: Tue, 24 Mar 2026 16:40:17 +0100 Subject: [PATCH 1435/1437] Update workflow_icarus.md --- .../WorkflowManagement/workflow_icarus.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md index 3b797db89..6d30a504e 100644 --- a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md +++ b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md @@ -43,3 +43,10 @@ detsim_2d_icarus.fcl
stage0_run2_icarus_mc.fcl
stage1_run2_icarus_MC.fcl
+ +
MC 2025A - work in progress (contact A. Campani) +standard_g4_icarus_sce.fcl
+detsim_2d_icarus.fcl
+stage0_run2_icarus_mc.fcl
+stage1_run2_icarus_MC.fcl
+
From d74b2573d97c62a26d83e96efa9c6cfc2299ed0e Mon Sep 17 00:00:00 2001 From: acampani <110998076+acampani@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:09:27 +0100 Subject: [PATCH 1436/1437] Update workflow_icarus.md --- .../WorkflowManagement/workflow_icarus.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md index 6d30a504e..ff9bb150f 100644 --- a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md +++ b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md @@ -44,9 +44,17 @@ stage0_run2_icarus_mc.fcl
stage1_run2_icarus_MC.fcl
-
MC 2025A - work in progress (contact A. Campani) -standard_g4_icarus_sce.fcl
-detsim_2d_icarus.fcl
-stage0_run2_icarus_mc.fcl
-stage1_run2_icarus_MC.fcl
+
MC 2025A - work in progress (contact A. Campani), updated on 24 March 2026 +Correct sequence for run4 data/MC:
+ to be added (WIP)
+ +Correct sequence for run2 data processing: + to be added (WIP)
+ +Correct sequence for MC based on run2: nu-only case (no overlays) from BNB beam
+simulation_genie_icarus_bnb_volDetEnclosure.fcl
+larg4_icarus_cosmics_sce_2d_drift.fcl
+detsim_2d_icarus_refactored_yzsim.fcl
+stage0_run2_wcdnn_icarus_mc.fcl
+stage1_run2_larcv_icarus_MC.fcl
From 585a5e693e4c17732c374275730cd41f9afbff90 Mon Sep 17 00:00:00 2001 From: Lucy Kotsiopoulou Date: Tue, 24 Mar 2026 18:13:51 +0000 Subject: [PATCH 1437/1437] Update Using_projectpy_for_grid_jobs.md Variable was wrongly named later on in the code. Fixed now. --- sbndcode_wiki/Using_projectpy_for_grid_jobs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/Using_projectpy_for_grid_jobs.md b/sbndcode_wiki/Using_projectpy_for_grid_jobs.md index c22a40c47..d0e684f50 100644 --- a/sbndcode_wiki/Using_projectpy_for_grid_jobs.md +++ b/sbndcode_wiki/Using_projectpy_for_grid_jobs.md @@ -141,7 +141,7 @@ that you want to run. /pnfs/sbnd/resilient/users/mdeltutt/grid_workdir_sbnd/prism_ana_enuelastic 100 generated - &name;_&tag;_gen + &name;_&releasetag;_gen 2000 --expected-lifetime=2h --generate-email-summary -l +SingularityImage=\"/cvmfs/singularity.opensciencegrid.org/fermilab/fnal-wn-sl7:latest\" --append_condor_requirements='(TARGET.HAS_SINGULARITY=?=true)'

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 literal 0 HcmV?d00001 diff --git a/sbndcode_wiki/commissioning/files/crthit_t1_beam_substructure_bt_2017.png b/sbndcode_wiki/commissioning/files/crthit_t1_beam_substructure_bt_2017.png new file mode 100644 index 0000000000000000000000000000000000000000..f7bfdac46216f62f02c5dda2fa767e52036f701d GIT binary patch literal 101335 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 literal 0 HcmV?d00001 diff --git a/sbndcode_wiki/commissioning/files/crthit_t1_beam_substructure_zoomed_bt_2017.png b/sbndcode_wiki/commissioning/files/crthit_t1_beam_substructure_zoomed_bt_2017.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ec0cbb86b7d61c3ff06ad40626164260c7aaa6 GIT binary patch literal 62188 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ȶLf%}(1dV% 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 Date: Thu, 17 Nov 2022 10:11:58 -0600 Subject: [PATCH 0389/1437] Update Plots_and_Stuff.md --- .../commissioning/Plots_and_Stuff.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/sbndcode_wiki/commissioning/Plots_and_Stuff.md b/sbndcode_wiki/commissioning/Plots_and_Stuff.md index 931f4c074..11ccace45 100644 --- a/sbndcode_wiki/commissioning/Plots_and_Stuff.md +++ b/sbndcode_wiki/commissioning/Plots_and_Stuff.md @@ -29,3 +29,37 @@ CRT sharp sharp plots and images - We don’t yet have a number for the absolute rate of beam muons in this transverse area (2m x 2m square centered on the beam axis), but it is on the order of 1 per 1000 spills in the upstream only after subtracting the cosmic background. ![muonpeak](files/beampeak.png) + +2. Beam muon peak June 2022 (with sbndcode reconstruction) + - The BES is the “Beam Extraction Signal” that is sent to us from the accelerator complex and arrives roughly 333 microseconds before the beam arrives in the SBN-ND building. We are currently measuring the time of the CRT hits w.r.t. this reference, we will do something slightly different for physics running. + - The beam spill duration is 1.6 us. + - This reconstruction DOES include corrections due to cable length differences, time walk and the light propagation time in the fibers. + - The trigger for this data requires a CRT hit in either the upstream or the downstream sharp (#) during the elongated window around the beam spill + - Plotted are ALL hits for the upstream # only + - This is roughly 12 hours of DAQ uptime + + + +CRT Beam Telescope plots and images +=================================== + +1. Beam Substructure (June - December 2017, with sbndcode reconstruction) + - The 1.6us beam spill consists of 81 buckets with a period of roughly 19ns. + - Using a subset of the data collected between June 2017 and January 2019 we can see this structure in the timing of the reconstructed 2D hits. + - The data was collected using a different standalone DAQ setup. + - The time of the readouts were measured with respect to a beam signal delayed until after the beam arrivial. A shift was then applied to give the values seen in the plot. + - Corrections for cable length and light propagation, time walk and clock drift were applied. + + + +and zoomed in on a few buckets + + + +2. Beam Spot (June - December 2017, with sbndcode reconstruction) + - Using the upstream set of panels we are able to see the beam's radial intensity decrease or beam spot. + - The centre of the beam was to the RHS and slightly above the set of panels. + - Using data from the beam spill window (t1 from 4380ns - 5980ns) and a identical length section from before the beam arrival (t1 from 2000ns - 3600ns) the cosmic background is subtracted from the beam signal region. + - Note the x axis is inverted in order to reflect the "beam's eye view" entering the building. + + From a63ff65a10166311950fd703e70c5af7b339fd7c Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Fri, 18 Nov 2022 14:36:38 -0600 Subject: [PATCH 0390/1437] Update ReleaseInstructions.md Link to sbndaq installation instructions --- sbn_online_wiki/ReleaseInstructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ReleaseInstructions.md b/sbn_online_wiki/ReleaseInstructions.md index cddc6d130..82b2fae9a 100644 --- a/sbn_online_wiki/ReleaseInstructions.md +++ b/sbn_online_wiki/ReleaseInstructions.md @@ -10,7 +10,7 @@ toc_title: SBN Online Release Instructions sbndaq ===================================== -(Instructions here.) +Instructions can be found [here](Installation.md). sbndqm From 1364770b9827ed0c15cabdef0cc01a9978c28af1 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Fri, 18 Nov 2022 21:37:47 -0600 Subject: [PATCH 0391/1437] Update sbndaq_Wiki.md --- sbn_online_wiki/sbndaq_Wiki.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 1fca8564c..5271aaf65 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -14,19 +14,15 @@ Developing in sbndaq ---------------------------------------------- * [Setup Instructions](Installation) +* [Release instructions for online-related software](ReleaseInstructions) * [Development Model](DevModel) -Release Instructions ----------------------------------------------- -[See here for release instructions for online-related software](ReleaseInstructions) - - - sbndaq components and services ---------------------------------------------- * [List of boardreaders](Boardreaders.md) * [Status of ongoing development and debugging](development/development.md) +* [Logfiles](DAQLogfiles.md) * Configuring the [Multi Function Timing Unit (MFTU)](ACnet/MFTU.md) Beam Timing Interface * [ICARUS File Transfer Service (FTS)](ICARUS_FTS.md) * [Grafana monitoring Instructions](grafana.md) From 8267a08b1f62342cc42c623083d1b797a8817c72 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Fri, 18 Nov 2022 22:33:14 -0600 Subject: [PATCH 0392/1437] Create DAQLogfiles.md --- sbn_online_wiki/DAQLogfiles.md | 68 ++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sbn_online_wiki/DAQLogfiles.md diff --git a/sbn_online_wiki/DAQLogfiles.md b/sbn_online_wiki/DAQLogfiles.md new file mode 100644 index 000000000..f5ee8982e --- /dev/null +++ b/sbn_online_wiki/DAQLogfiles.md @@ -0,0 +1,68 @@ +# Logfiles in ICARUS + +## Run records + +`/daq/run_records` holds FHiCL configuration for each run. The files are processed with `fhicl_dump`, so all included files are merged, comments are limited to one line preceding the parameter, and the line of the parameter. + +## /daq/log + +`/daq/log` is the main partition for the daq logfiles. There are many types of logs, as explained below. + +### Event Builders, Board Readers, Dispatcher + +EventBuilder logs are stored in `/daq/log` subdirectories with name as: + +`EventBuilder11-icarus-evb01-11245` + +where the name refers to the EventBuilder number, machine, and the process number. The files in these subdirectories include a timestamp, but not a run number, as they are created before the run number is assigned. + +When the run number is assigned, artdaq creates symlinks in a directory `/daq/log/eventbuilder` which include run number in their names. + +Logfiles for Board Readers are written in subdirectories including the specific boardreader name, e.g. + +`icaruscrt09ssi-icarus-crt09-11100/` + +and all symlinks are created in `/daq/log/boardreader`. + +Dispatcher logs are saved in a similar way. + +### Process Management Tool + +Additional artdaq logfiles from each machine are stored in a directory with a bit confusing name `/daq/log/pmt` including both files marked with timestamps, and symlinks which include the run numbers. + +### File Transfer Service + +Logs for Xporter, FTS and File Cleanup are stored in `/daq/log/fts_logs`. + +### Grafana + +Metrics stored in `/daq/log/metrics`, and grafana logs in `/daq/log/grafana/`. + +### Logs management + +#### Disk space analysis + +One can find disk space usage by various components with the following command: + +`for x in $(ls /daq/log | sed 's/[0-9].*//' | sed 's/icaruspmt.*/icaruspmt/' | sed 's/icarustpc.*/icarustpc/' | uniq); do echo $(du -csh /daq/log/${x}* |grep total) ${x}; done |sort -h` + +And details of the `/daq/log/pmt`: + +`for x in $(ls /daq/log/pmt | sed 's/[0-9].*//' | uniq); do echo $(du -csh /daq/log/pmt/${x}* |grep total) ${x}; done |sort -h` + +#### Removing old logfiles +The following example command removes all TPC boardreader logs older than 30 days: + +`find /daq/log/icarustpc* -ctime +30 -type f -exec rm {} \;` + +Similarly, TPC logs in pmt directory older than 30 days can be removed with: + +`find /daq/log/pmt/launch_attempt_icarus-tpc* -ctime +30 -type f -exec rm {} \;` + +After deleting the files, no longer active symlinks can removed: + +`find /daq/log/. -xtype l -delete` + +And finally, empty directories: + +`find /daq/log/. -type d -exec rmdir {} \;` From 7143212a98fb55b8ec1d05c1421c22232f34d177 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Fri, 18 Nov 2022 22:34:12 -0600 Subject: [PATCH 0393/1437] Update sbndaq_Wiki.md --- sbn_online_wiki/sbndaq_Wiki.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 5271aaf65..9ed9e80ab 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -1,15 +1,3 @@ ---- -layout: page -title: SBN DAQ Software Wiki -###subtitle: Specific Wiki for SBNDAQ -description: Wiki documentation for SBNDAQ -hero_height: is-small -toc: true -toc_title: SBNDAQ Contents ---- - - - Developing in sbndaq ---------------------------------------------- From 5aa8cd4d2552cfb34ad7b94432347826d7eb1eb9 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Fri, 18 Nov 2022 22:37:37 -0600 Subject: [PATCH 0394/1437] Update DAQLogfiles.md --- sbn_online_wiki/DAQLogfiles.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbn_online_wiki/DAQLogfiles.md b/sbn_online_wiki/DAQLogfiles.md index f5ee8982e..66adb8c91 100644 --- a/sbn_online_wiki/DAQLogfiles.md +++ b/sbn_online_wiki/DAQLogfiles.md @@ -30,6 +30,9 @@ Dispatcher logs are saved in a similar way. Additional artdaq logfiles from each machine are stored in a directory with a bit confusing name `/daq/log/pmt` including both files marked with timestamps, and symlinks which include the run numbers. +### DAQInterface +A single file with logs from DAQInterface is in: `/daq/log/DAQInterface_partition1.log`. This is a file to check if a run crashes before starts. It also includes timestamps of run start and stop. + ### File Transfer Service Logs for Xporter, FTS and File Cleanup are stored in `/daq/log/fts_logs`. From 9d65d40db1d705235812fc0a2d4b925647d0e1a8 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Fri, 18 Nov 2022 22:42:22 -0600 Subject: [PATCH 0395/1437] Update DAQLogfiles.md --- sbn_online_wiki/DAQLogfiles.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn_online_wiki/DAQLogfiles.md b/sbn_online_wiki/DAQLogfiles.md index 66adb8c91..334e7642c 100644 --- a/sbn_online_wiki/DAQLogfiles.md +++ b/sbn_online_wiki/DAQLogfiles.md @@ -30,6 +30,8 @@ Dispatcher logs are saved in a similar way. Additional artdaq logfiles from each machine are stored in a directory with a bit confusing name `/daq/log/pmt` including both files marked with timestamps, and symlinks which include the run numbers. +PMT logs include FragmentWatcher messages. + ### DAQInterface A single file with logs from DAQInterface is in: `/daq/log/DAQInterface_partition1.log`. This is a file to check if a run crashes before starts. It also includes timestamps of run start and stop. From d71cf0ee49d4766ee38bf14c0f0c5fa07c7a204f Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:18:02 +0100 Subject: [PATCH 0396/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 5a68883ef..996528043 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -1,6 +1,22 @@ Sep 2022 The document summarizes various discussions during the last weeks. It needs to be turned into a proper documentation. +# Online Data Management +FTS is a process managed by the Online Data Managment processes. The Online Data Management manages the files created by the DAQ, creates metadata for files that will later be processed by the offline and transfers those files off of the DAQ cluster. + +# What happens to files +- EventBuilder writes file to /data/daq area +- When closed, file is renamed +- Xporter.py process kicks in (icarus user): + a. Looks for completed files (by name) in /data/daq + b. Moves file from /data/daq to /data/fts_dropbox + c. Generates JSON metadata file in /data/fts_dropbox +- FTS process process kicks in (icarusraw user): + a. Looks for files (by name) and matching JSON file + b. Declares file to SAM + c. Copies file to tape-backed dCache area +- Files removed when verified tape location + # Xporter - There is a cron job that runs the xporter process. That cron job starts a new one job every minute. From 68c0acaa18f1ab00b9c629fad9ae9c166b9d23e8 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:21:39 +0100 Subject: [PATCH 0397/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 996528043..abc8506db 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -15,7 +15,7 @@ FTS is a process managed by the Online Data Managment processes. The Online Data a. Looks for files (by name) and matching JSON file b. Declares file to SAM c. Copies file to tape-backed dCache area -- Files removed when verified tape location +- Files are removed from Online cluster when verified tape location # Xporter @@ -24,6 +24,9 @@ FTS is a process managed by the Online Data Managment processes. The Online Data - Perhaps it's not wise to have two processes writing to the same log file? - The ongoing xporter process will drift in and out of D state as it runs. I think this is normal. I think that one should not assume if you see the process in D state that it is dead. - Xporter needs to communicate with both UconDB DB (postgres) and MongoDB to run +- What Xporter does: + a. First moves the files + b. Then tries to make metadata and write to JSON file --> needs RunHistory DB to grab configuration name/information, looks into root file for number of events, parses the file name for run number, what data stream (used for file families) and calculates a checksum used for transfers # References SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From c44bd81ea4a86e49660dc3295a315cd762d24f2d Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:24:52 +0100 Subject: [PATCH 0398/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index abc8506db..7e18d9533 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -27,6 +27,28 @@ FTS is a process managed by the Online Data Managment processes. The Online Data - What Xporter does: a. First moves the files b. Then tries to make metadata and write to JSON file --> needs RunHistory DB to grab configuration name/information, looks into root file for number of events, parses the file name for run number, what data stream (used for file families) and calculates a checksum used for transfers + +- Example of metadata file: + { + "file_size": 5850482, + "file_name": "data_dl7_fstrmOffBeamBNBMAJORITY_run9093_1_20221109T204532.root", + "file_type": "data", "file_format": "artroot", + "data_tier": "raw", + "sbn_dm.detector": "sbn_fd", + "data_stream": "offbeambnbmajority", + "runs": [[9093, "physics"]], + "sbn_dm.file_year": 2022, "sbn_dm.file_month": 11, "sbn_dm.file_day": 10, "checksum": + ["enstore:3856015800"], + "icarus_project.version": "v1_04_00", + "icarus_project.name": "icarus_daq_v1_04_00", + "configuration.name": + "Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_00002", + "icarus_project.stage": "daq", "sbn_dm.beam_type": "BNB", "sbn_dm.event_count":0 + } + +# File Transfer System + +- Link:https://cdcvs.fnal.gov/redmine/projects/sam/wiki/File_Transfer_Service_Information # References SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From b5663634bd0a26e170b8690a11923f0ced6e77f8 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:27:35 +0100 Subject: [PATCH 0399/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 7e18d9533..575332ef2 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -49,6 +49,11 @@ FTS is a process managed by the Online Data Managment processes. The Online Data # File Transfer System - Link:https://cdcvs.fnal.gov/redmine/projects/sam/wiki/File_Transfer_Service_Information +- FTS is setup to look for files + metadata file in a “dropbox”, and then transfer them according to rules in configuration files. Configs for ICARUS --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/FTS_config/icarus-evb_fts_config.ini +- It runs as a daemon → don’t need to put in crontab +- FTS_config has setup/start/stop/restart scripts --> https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/FTS_config +- Run as icarusraw user +- Linked to offline production certificates # References SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From c1c27df332e855b7e1bbdb2ba70440db2ffc451f Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:30:37 +0100 Subject: [PATCH 0400/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 575332ef2..5a310482a 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -54,6 +54,13 @@ FTS is a process managed by the Online Data Managment processes. The Online Data - FTS_config has setup/start/stop/restart scripts --> https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/FTS_config - Run as icarusraw user - Linked to offline production certificates +- Logs for all online DM are located in /daq/logs/fts_logs +- File deletion: + ● Files are safe once they are transferred to dCache + ○ Marked as ‘precious’ so they will not be rejected from Pool if Pool is full + ● However, for extra safety we wait until we have a confirmed location on tape + ○ FTS will do this check, but sometimes lookup to SAM DB can be particularly slow + ○ runManualFTSFileCleanup.sh runs in icarus crontab twice a day to try to do this faster --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runManualFTSFileCleanup.sh # References SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From 4031d6572a3092a1a2aa85b59c11877377ba79f2 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:32:00 +0100 Subject: [PATCH 0401/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 5a310482a..5f845d6ec 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -56,11 +56,10 @@ FTS is a process managed by the Online Data Managment processes. The Online Data - Linked to offline production certificates - Logs for all online DM are located in /daq/logs/fts_logs - File deletion: - ● Files are safe once they are transferred to dCache - ○ Marked as ‘precious’ so they will not be rejected from Pool if Pool is full - ● However, for extra safety we wait until we have a confirmed location on tape - ○ FTS will do this check, but sometimes lookup to SAM DB can be particularly slow - ○ runManualFTSFileCleanup.sh runs in icarus crontab twice a day to try to do this faster --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runManualFTSFileCleanup.sh + - Files are safe once they are transferred to dCache (Marked as ‘precious’ so they will not be rejected from Pool if Pool is full) + - However, for extra safety we wait until we have a confirmed location on tape + - FTS will do this check, but sometimes lookup to SAM DB can be particularly slow + - runManualFTSFileCleanup.sh runs in icarus crontab twice a day to try to do this faster --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runManualFTSFileCleanup.sh # References SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From 2f7122ef459fc99233e55386ce0532330fea8291 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:38:13 +0100 Subject: [PATCH 0402/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 5f845d6ec..6a44710d5 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -60,6 +60,18 @@ FTS is a process managed by the Online Data Managment processes. The Online Data - However, for extra safety we wait until we have a confirmed location on tape - FTS will do this check, but sometimes lookup to SAM DB can be particularly slow - runManualFTSFileCleanup.sh runs in icarus crontab twice a day to try to do this faster --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runManualFTSFileCleanup.sh + - Monitoring page: + https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-12h&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb05&var-instance=icarus-fts-icarus-evb06 + +# Troubleshooting + +- Usually we notice problems if /data starts getting full + - Check if Xporter or FTS logs have errors. + - For example: + - Xporter → usually can’t make metadata, e.g. can’t connect to RunHistory DB or weird file name + - FTS → usually has problem with metadata or CRL certificates need refresh: metadata keys and some values, like data_tier and data_stream, must be registered in SAM → talk to offline production! For certificates: systemctl status fetch-crl-cron ... if dead,needs restart (as root). Can also run by hand: fetch-crl + - Talk to offline! + - Maybe some massive problem with tape ... if files don’t get locations on tape, then they won’t be removed from online cluster # References SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From f20921e0e064418161a5c3550b6cc353c9af0742 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:38:48 +0100 Subject: [PATCH 0403/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 6a44710d5..e78db36d8 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -66,8 +66,7 @@ FTS is a process managed by the Online Data Managment processes. The Online Data # Troubleshooting - Usually we notice problems if /data starts getting full - - Check if Xporter or FTS logs have errors. - - For example: + - Check if Xporter or FTS logs have errors. For example: - Xporter → usually can’t make metadata, e.g. can’t connect to RunHistory DB or weird file name - FTS → usually has problem with metadata or CRL certificates need refresh: metadata keys and some values, like data_tier and data_stream, must be registered in SAM → talk to offline production! For certificates: systemctl status fetch-crl-cron ... if dead,needs restart (as root). Can also run by hand: fetch-crl - Talk to offline! From 9c0cfadd46672b251fb692aa1e4d7b7599ad2f2a Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:40:58 +0100 Subject: [PATCH 0404/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index e78db36d8..9604863e5 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -62,6 +62,10 @@ FTS is a process managed by the Online Data Managment processes. The Online Data - runManualFTSFileCleanup.sh runs in icarus crontab twice a day to try to do this faster --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runManualFTSFileCleanup.sh - Monitoring page: https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-12h&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb05&var-instance=icarus-fts-icarus-evb06 + - Files declared → declared to SAM (not yet transferred) + - Data transferred → data FTS knows it moved + - In progress will show new, pending (for transfer), waiting for tape (what it sounds like) + - “Failures” usually due to waiting for tape for more than 4 days # Troubleshooting From b0b805fa90bef2e29e841be9e1cc43d0403d5d18 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:51:22 +0100 Subject: [PATCH 0405/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 9604863e5..ad933cec0 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -48,7 +48,7 @@ FTS is a process managed by the Online Data Managment processes. The Online Data # File Transfer System -- Link:https://cdcvs.fnal.gov/redmine/projects/sam/wiki/File_Transfer_Service_Information +- Link: https://cdcvs.fnal.gov/redmine/projects/sam/wiki/File_Transfer_Service_Information - FTS is setup to look for files + metadata file in a “dropbox”, and then transfer them according to rules in configuration files. Configs for ICARUS --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/FTS_config/icarus-evb_fts_config.ini - It runs as a daemon → don’t need to put in crontab - FTS_config has setup/start/stop/restart scripts --> https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/FTS_config From 5bc5aa92c6a550413c4b1a86406962a3fe996ec6 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 11:37:06 +0100 Subject: [PATCH 0406/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index ad933cec0..a7a9a5a01 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -2,7 +2,25 @@ Sep 2022 The document summarizes various discussions during the last weeks. It needs to be turned into a proper documentation. # Online Data Management -FTS is a process managed by the Online Data Managment processes. The Online Data Management manages the files created by the DAQ, creates metadata for files that will later be processed by the offline and transfers those files off of the DAQ cluster. +The File Transfer System (FTS) is managed by the Online Data Managment processes. +The Online Data Management: +- manages the files created by the DAQ +- creates metadata for files that will later be processed by the offline +- transfers those files off of the DAQ cluster. + +# Flow of fully-built events in DAQ + +![flow-event-builds-icarus](https://user-images.githubusercontent.com/97683442/203762937-d0f7a3c9-6cb8-4817-9ecc-85bb83b5ea7c.JPG) + + +# File names +For example: +data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: +- dl --> Data Logger +- fstrmOffBeamBNBMINBIAS --> file stream name +- run9093 --> run number +- 160 --> nth file from this EVB for this run +- 20221110T113956 --> file open timestamp # What happens to files - EventBuilder writes file to /data/daq area From acb4093b6b34f7f3da0490d7a526b2728bf19bf9 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 11:45:57 +0100 Subject: [PATCH 0407/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index a7a9a5a01..6f5297648 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -35,6 +35,8 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: c. Copies file to tape-backed dCache area - Files are removed from Online cluster when verified tape location +![what-happens-to-files](https://user-images.githubusercontent.com/97683442/203764941-0efa7138-0457-45fc-8b0e-751b9276210e.JPG) + # Xporter - There is a cron job that runs the xporter process. That cron job starts a new one job every minute. From 45bef6daa0850618e7bc75b05c1f668dd39e6b36 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 11:50:12 +0100 Subject: [PATCH 0408/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 6f5297648..888f2dc1f 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -7,6 +7,8 @@ The Online Data Management: - manages the files created by the DAQ - creates metadata for files that will later be processed by the offline - transfers those files off of the DAQ cluster. +The Online Data Management script are in the following repository: +https://github.com/SBNSoftware/sbndaq-xporter # Flow of fully-built events in DAQ @@ -35,11 +37,12 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: c. Copies file to tape-backed dCache area - Files are removed from Online cluster when verified tape location -![what-happens-to-files](https://user-images.githubusercontent.com/97683442/203764941-0efa7138-0457-45fc-8b0e-751b9276210e.JPG) # Xporter +Repository: +https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter -- There is a cron job that runs the xporter process. That cron job starts a new one job every minute. +- There is a cron job (xporter_crontab.ctab) that runs the xporter process. That cron job starts a new one job every minute. - The job should check to see if there is a lock file to see if another one is running. If so, it should say so in the log file, and exit. There are actually two checks for this: one in the runXporter.sh script directly run by cron, and another in the python code itself. Which means ... you can get 'in progress/do not run' messages in the log file while there still is an xporter process running. That's by design. - Perhaps it's not wise to have two processes writing to the same log file? - The ongoing xporter process will drift in and out of D state as it runs. I think this is normal. I think that one should not assume if you see the process in D state that it is dead. From 577b1f602b5cc1dcbe6b380ef85967c6af773918 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 11:51:53 +0100 Subject: [PATCH 0409/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 888f2dc1f..115160586 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -42,7 +42,7 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: Repository: https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter -- There is a cron job (xporter_crontab.ctab) that runs the xporter process. That cron job starts a new one job every minute. +- There is a cron job ([xporter_crontab.ctab](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/xporter_crontab.ctab)) that runs the xporter process. That cron job starts a new one job every minute. - The job should check to see if there is a lock file to see if another one is running. If so, it should say so in the log file, and exit. There are actually two checks for this: one in the runXporter.sh script directly run by cron, and another in the python code itself. Which means ... you can get 'in progress/do not run' messages in the log file while there still is an xporter process running. That's by design. - Perhaps it's not wise to have two processes writing to the same log file? - The ongoing xporter process will drift in and out of D state as it runs. I think this is normal. I think that one should not assume if you see the process in D state that it is dead. From f66c7ef7cf3f63cb740b79811c6a31cbb581c3af Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 11:54:04 +0100 Subject: [PATCH 0410/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 115160586..9b18e9b49 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -42,7 +42,7 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: Repository: https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter -- There is a cron job ([xporter_crontab.ctab](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/xporter_crontab.ctab)) that runs the xporter process. That cron job starts a new one job every minute. +- There is a cron job [xporter_crontab.ctab](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/xporter_crontab.ctab) that runs the xporter process [runXporter.sh](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runXporter.sh). That cron job starts a new one job every minute. - The job should check to see if there is a lock file to see if another one is running. If so, it should say so in the log file, and exit. There are actually two checks for this: one in the runXporter.sh script directly run by cron, and another in the python code itself. Which means ... you can get 'in progress/do not run' messages in the log file while there still is an xporter process running. That's by design. - Perhaps it's not wise to have two processes writing to the same log file? - The ongoing xporter process will drift in and out of D state as it runs. I think this is normal. I think that one should not assume if you see the process in D state that it is dead. @@ -72,9 +72,9 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter # File Transfer System - Link: https://cdcvs.fnal.gov/redmine/projects/sam/wiki/File_Transfer_Service_Information -- FTS is setup to look for files + metadata file in a “dropbox”, and then transfer them according to rules in configuration files. Configs for ICARUS --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/FTS_config/icarus-evb_fts_config.ini +- FTS is setup to look for files + metadata file in a “dropbox”, and then transfer them according to rules in configuration files. [Configs for ICARUS](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/FTS_config/icarus-evb_fts_config.ini) - It runs as a daemon → don’t need to put in crontab -- FTS_config has setup/start/stop/restart scripts --> https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/FTS_config +- FTS_config has setup/start/stop/restart [scripts](https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/FTS_config) - Run as icarusraw user - Linked to offline production certificates - Logs for all online DM are located in /daq/logs/fts_logs From b22b69b7b6a0c405aab2a8f396e745f017f7cf30 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 11:56:47 +0100 Subject: [PATCH 0411/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 9b18e9b49..c8e8ac658 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -48,8 +48,8 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - The ongoing xporter process will drift in and out of D state as it runs. I think this is normal. I think that one should not assume if you see the process in D state that it is dead. - Xporter needs to communicate with both UconDB DB (postgres) and MongoDB to run - What Xporter does: - a. First moves the files - b. Then tries to make metadata and write to JSON file --> needs RunHistory DB to grab configuration name/information, looks into root file for number of events, parses the file name for run number, what data stream (used for file families) and calculates a checksum used for transfers + - First moves the files + - Then tries to make metadata and write to JSON file --> needs RunHistory DB to grab configuration name/information, looks into root file for number of events, parses the file name for run number, what data stream (used for file families) and calculates a checksum used for transfers - Example of metadata file: { From 61bb812890f43ad837b19b9826b7e1e1b588c80a Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 11:58:20 +0100 Subject: [PATCH 0412/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index c8e8ac658..1b80daff9 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -82,7 +82,7 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - Files are safe once they are transferred to dCache (Marked as ‘precious’ so they will not be rejected from Pool if Pool is full) - However, for extra safety we wait until we have a confirmed location on tape - FTS will do this check, but sometimes lookup to SAM DB can be particularly slow - - runManualFTSFileCleanup.sh runs in icarus crontab twice a day to try to do this faster --> https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runManualFTSFileCleanup.sh + - [runManualFTSFileCleanup.sh](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/runManualFTSFileCleanup.sh) runs in icarus crontab twice a day to try to do this faster - Monitoring page: https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-12h&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb05&var-instance=icarus-fts-icarus-evb06 - Files declared → declared to SAM (not yet transferred) From 3e1af211b9cf8840276dcb124324a3efefba30a0 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:01:24 +0100 Subject: [PATCH 0413/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 1b80daff9..ba30458f5 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -89,6 +89,9 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - Data transferred → data FTS knows it moved - In progress will show new, pending (for transfer), waiting for tape (what it sounds like) - “Failures” usually due to waiting for tape for more than 4 days + +![FTS-monitor](https://user-images.githubusercontent.com/97683442/203768219-08770cdd-10c4-4ef2-aa1b-4b509261e9ca.JPG) + # Troubleshooting From 2c3a6e518a004e308a58f5ce01efb9d7958f98c6 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:04:01 +0100 Subject: [PATCH 0414/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index ba30458f5..1e9f6cc51 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -27,14 +27,14 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: # What happens to files - EventBuilder writes file to /data/daq area - When closed, file is renamed -- Xporter.py process kicks in (icarus user): - a. Looks for completed files (by name) in /data/daq - b. Moves file from /data/daq to /data/fts_dropbox - c. Generates JSON metadata file in /data/fts_dropbox +- Xporter.py process kicks in (icarus user): + - Looks for completed files (by name) in /data/daq + - Moves file from /data/daq to /data/fts_dropbox + - Generates JSON metadata file in /data/fts_dropbox - FTS process process kicks in (icarusraw user): - a. Looks for files (by name) and matching JSON file - b. Declares file to SAM - c. Copies file to tape-backed dCache area + - Looks for files (by name) and matching JSON file + - Declares file to SAM + - Copies file to tape-backed dCache area - Files are removed from Online cluster when verified tape location From bbf54f5461a9b4c2eeabf7beb56ce8af70a83c89 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:07:49 +0100 Subject: [PATCH 0415/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 1e9f6cc51..71c634ef8 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -33,7 +33,7 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: - Generates JSON metadata file in /data/fts_dropbox - FTS process process kicks in (icarusraw user): - Looks for files (by name) and matching JSON file - - Declares file to SAM + - Declares file to SAM (Serial Access to Metadata) - Copies file to tape-backed dCache area - Files are removed from Online cluster when verified tape location @@ -49,7 +49,9 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - Xporter needs to communicate with both UconDB DB (postgres) and MongoDB to run - What Xporter does: - First moves the files - - Then tries to make metadata and write to JSON file --> needs RunHistory DB to grab configuration name/information, looks into root file for number of events, parses the file name for run number, what data stream (used for file families) and calculates a checksum used for transfers + - Then tries to make metadata and write to JSON file: + - [offline_run_history.py](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/offline_run_history.py) queries RunHistory DB to grab configuration name/information + - [X_SAM_metadata.py](https://github.com/SBNSoftware/sbndaq-xporter/blob/develop/Xporter/X_SAM_metadata.py) looks into root file for number of events, parses the file name for run number, what data stream (used for file families) and calculates a checksum used for transfers - Example of metadata file: { From 140b10f157a7f4d71a2ef85806a4431f734e3b56 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:11:10 +0100 Subject: [PATCH 0416/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 71c634ef8..cbe37cad9 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -101,6 +101,7 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - Check if Xporter or FTS logs have errors. For example: - Xporter → usually can’t make metadata, e.g. can’t connect to RunHistory DB or weird file name - FTS → usually has problem with metadata or CRL certificates need refresh: metadata keys and some values, like data_tier and data_stream, must be registered in SAM → talk to offline production! For certificates: systemctl status fetch-crl-cron ... if dead,needs restart (as root). Can also run by hand: fetch-crl + - if you need to restart the FTS service, run the following script: ~icarus/FileTransfer/sbndaq-xporter/FTS_config/restart_fts.sh on one of the eventbuilder machines. This should restart the FTS system. - Talk to offline! - Maybe some massive problem with tape ... if files don’t get locations on tape, then they won’t be removed from online cluster From be0f5478a5265e4956736da2472f6a95f769352e Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:34:49 +0100 Subject: [PATCH 0417/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index cbe37cad9..95f9e004f 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -14,6 +14,16 @@ https://github.com/SBNSoftware/sbndaq-xporter ![flow-event-builds-icarus](https://user-images.githubusercontent.com/97683442/203762937-d0f7a3c9-6cb8-4817-9ecc-85bb83b5ea7c.JPG) +About event builders: +- Output modules is a specialized RootOutput module that clears disk cache --> improve write performance +- CompressionLevel: 501 → LZ4, compression level 1 + - Reduces file size factor of ~3-4; final size ~150 MB per event +- 50 events per file → 7.6 GB files + - In the 1-10 GB range preferred for tape storage +- Number and location of EventBuilders specified in `boot.txt` configuration file +- EventBuilders get events ‘round-robin → if n EventBuilders, event j goes to (j%n )th EventBuilder +- Each icarus-evb server has 23 TB of RAID-backed disk + - Across 6 servers, that’s enough for over 900K events, or ~250 hours of data at 1 Hz trigger rate # File names For example: From 15bd4dd1a09e9670510d3520cd435743c99a6069 Mon Sep 17 00:00:00 2001 From: laurapas88 <97683442+laurapas88@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:35:21 +0100 Subject: [PATCH 0418/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 95f9e004f..955ee4281 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -14,7 +14,7 @@ https://github.com/SBNSoftware/sbndaq-xporter ![flow-event-builds-icarus](https://user-images.githubusercontent.com/97683442/203762937-d0f7a3c9-6cb8-4817-9ecc-85bb83b5ea7c.JPG) -About event builders: +About Event Builders: - Output modules is a specialized RootOutput module that clears disk cache --> improve write performance - CompressionLevel: 501 → LZ4, compression level 1 - Reduces file size factor of ~3-4; final size ~150 MB per event From fc794d44e6f365efa3e5ee0494ae143f928a557a Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 1 Dec 2022 21:16:44 +0000 Subject: [PATCH 0419/1437] Create sbncode_v09_63_00_01.md --- .../Releases/sbncode_v09_63_00_01.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01.md new file mode 100644 index 000000000..e83d7b234 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01.md @@ -0,0 +1,53 @@ +--- +layout: page +title: sbncode_v09_63_00_01 +toc: true +--- + +sbncode_v09_63_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +30 November 2022 + +Purpose +--------------------------------------------------- +* Production patch release + +New features +--------------------------------------------------- +A new patch to the production release SBN2022B of sbncode (v09_63_00_01) has been cut and distributed + +* sbncode (v09_63_00_01): + + Using: + * sbnobj v09_15_00_01 + * sbnanaobj v09_20_00_01 + * systematicstools v01_02_00 + * nusystematics v01_01_00 + + Includes: + * SBNSoftware/sbncode Improvements and corrections to the Simple Flash Matcher #300 + * SBNSoftware/sbnobj Improvements and corrections to the Simple Flash Matcher #69 + * SBNSoftware/sbnanaobj Improvements and corrections to the Simple Flash Matcher #80 + * SBNSoftware/sbncode Feature/rh all pf os breaking change #270 + * SBNSoftware/sbnanaobj Feature/rh test caf breaking change #66 + * SBNSoftware/sbncode Feature/jskim dune syst fromv09_59_00 #310 + * SBNSoftware/sbnobj Adding a function in EventWeightParameterSet #68 + * SBNSoftware/sbncode Reference PMT times and Update SRTrigger#314 + * SBNSoftware/sbnanaobj Update SRTrigger #85 + * SBNSoftware/sbncode Add in CRT-Hit match filling to CAF. Refactor time reference of CRT.#316 + + +Extra info +--------------------------------------------------- + This is a patch to the production release it introduces a breaking change into the CAFs (details on #270) + This will be merged to develop. + It introduces new dependencies : + * systematicstools + * nusystematics From 84d16b37b033cdb69a872a601eb81932faaaf0be Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 1 Dec 2022 21:23:23 +0000 Subject: [PATCH 0420/1437] Create sbnana_SBN2022B.md --- .../Releases/sbnana_SBN2022B.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_SBN2022B.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_SBN2022B.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_SBN2022B.md new file mode 100644 index 000000000..742929e8e --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_SBN2022B.md @@ -0,0 +1,43 @@ +--- +layout: page +title: sbnana_SBN2022B +toc: true +--- + +sbnana_SBN2022B Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +23 November 2022 + +Purpose +--------------------------------------------------- +* Autumn production release + +New features +--------------------------------------------------- +A new production release matching of sbnana (v09_63_00) has been cut and distributed + +* sbnana (v09_63_00 in ups / SBN2022B and v09_63_00 in GitHub): + + Using: + + * sbnanaobj v09_20_00 + * cetmodules v3_20_00 + + Includes: + * SBNSoftware/sbnana Migrate to cetmodules. #90 + + +Extra info +--------------------------------------------------- + This is a production release using v09_63_00 tag in ups and SBN2022B in GitHub. + + In this release a migration to use cetmodules has been introduced. + More info: https://indico.fnal.gov/event/53302 + From 58638cdc54a1f7a2a3c560a68fbbc7c9de1658df Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Thu, 1 Dec 2022 21:25:59 +0000 Subject: [PATCH 0421/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index c8dc0ad97..01a4322ab 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,8 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|----------------------------------|-------------------------------------------- +`v09_63_00_01` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01) +`SBN2022B` | 'sbnana' autumn production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_SBN2022B) `SBN2022B` | 'sbncode' autumn production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B) `v09_62_00_02` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_02) `v09_62_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01) From c58c39931c00aa61d916e0ef69b29ba9a30c546e Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 5 Dec 2022 16:53:11 +0000 Subject: [PATCH 0422/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 01a4322ab..2e2dd1a94 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -10,7 +10,8 @@ List of `sbncode` releases These are the releases tagged until now: | Version | Notes | Detailed Notes -|----------------|----------------------------------|-------------------------------------------- +|----------------|----------------------------------|-------------------------------------------- +`v09_63_00_02` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02) `v09_63_00_01` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01) `SBN2022B` | 'sbnana' autumn production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_SBN2022B) `SBN2022B` | 'sbncode' autumn production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B) From 9094920f60299b169658ac1f2eeec73796b31bd2 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 5 Dec 2022 16:58:12 +0000 Subject: [PATCH 0423/1437] Create sbncode_v09_63_00_02.md --- .../Releases/sbncode_v09_63_00_02.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02.md new file mode 100644 index 000000000..29a4bd6d7 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbncode_v09_63_00_02 +toc: true +--- + +sbncode_v09_63_00_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +05 December 2022 + +Purpose +--------------------------------------------------- +* Production patch release + +New features +--------------------------------------------------- +A new patch to the production release SBN2022B of sbncode (v09_63_00_02) has been cut and distributed + +* sbncode (v09_63_00_02): + + Using: + * sndaq_artdaq_core v1_04_02of0 + + Includes: + * SBNSoftware/sbndaq-artdaq-core Feature/jzettle offlinetriggerv3 #76 + + +Extra info +--------------------------------------------------- + From 4de2bf46a06bc7432d981f8fe422d6bd514f8843 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Mon, 5 Dec 2022 09:25:15 -0800 Subject: [PATCH 0424/1437] Updated format of software parameter settings page (from Redmine) --- .../Software_parameters_and_settings.md | 47 +++++-------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/icaruscode_wiki/Software_parameters_and_settings.md b/icaruscode_wiki/Software_parameters_and_settings.md index 6908ebabd..29ebce662 100644 --- a/icaruscode_wiki/Software_parameters_and_settings.md +++ b/icaruscode_wiki/Software_parameters_and_settings.md @@ -1,6 +1,9 @@ --- layout: page title: Software parameters and settings +description: Settings of icaruscode simulation and reconstruction. +# menubar: icaruscode_menu +toc_title: Contents --- @@ -8,27 +11,6 @@ title: Software parameters and settings Software parameters and settings ==================================================================================== -- **Table of contents** -- [Software parameters and - settings] - - - [How to update this page] - - - [Detector geometry] - - [Timings] - - [Code and configuration - information] - - [Timing overview] - - [Detailed timing explanation] - - [Simulation] - - [Event generation] - - [TPC simulation] - - [Optical simulation] - - [Scintillation] - - [Transportation of scintillation photons to the optical - detectors] - - [Optical readout - simulation] - This page is an attempt to keep track of the parameters of the ICARUS detector relevant to the simulation and reconstruction. @@ -36,24 +18,17 @@ detector relevant to the simulation and reconstruction. ### How to update this page -- changes are ultimately tracked by Redmine (check the \"history\" - link usually on top right of the page) -- when updating or adding a setting, always mark the version of - [ICARUS LArSoft](/redmine/projects/icaruscode){.project} it is - extracted from - - use the `version:` Redmine tag (e.g. `version:v08_19_01` will - show as s link: [v08\_19\_01](/redmine/versions/1911){.version}) - - if the version you look for is not registered yet, use it anyway - and inform the [release - manager](Roles_and_people.html#release-management) +- changes are ultimately tracked by GIT (check the ["log"](https://github.com/SBNSoftware/SBNSoftware.github.io/commits/master)) +- when updating or adding a setting, always mark the version of [ICARUS LArSoft]([/redmine/projects/](https://github.com/SBNSoftware/icaruscode) it is extracted from + - use a version link: add at the bottom of the page a link definition, and then use the link as `[version]` + - if the version you look for is not registered yet, use it anyway and inform the [release manager](Roles_and_people.md#release-management) Detector geometry ------------------------------------------------------- +------------------ -Detector geometry is described in [its own -page](Detector_geometry.html). +Detector geometry is described in [its own page](Detector_geometry.md). @@ -490,3 +465,7 @@ This is an excerpt of from `icarus_pmtsimulationalg_standard` BeamGateTriggerNReps: 10 #Number of beamgate trigger reps to produce Saturation: 300 #in number of p.e. to see saturation effects in the signal QE: 0.07 #TPB coated PMT quantum efficiency + + + +[v08_19_01]: https://github.com/SBNSoftware/icaruscode/tree/v08_19_01 From 478418021633aacf1c61f0b4c48f8c7760827323 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Mon, 5 Dec 2022 09:40:07 -0800 Subject: [PATCH 0425/1437] Update Software_parameters_and_settings.md --- .../Software_parameters_and_settings.md | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/icaruscode_wiki/Software_parameters_and_settings.md b/icaruscode_wiki/Software_parameters_and_settings.md index 29ebce662..ff3884a9d 100644 --- a/icaruscode_wiki/Software_parameters_and_settings.md +++ b/icaruscode_wiki/Software_parameters_and_settings.md @@ -20,7 +20,7 @@ detector relevant to the simulation and reconstruction. - changes are ultimately tracked by GIT (check the ["log"](https://github.com/SBNSoftware/SBNSoftware.github.io/commits/master)) - when updating or adding a setting, always mark the version of [ICARUS LArSoft]([/redmine/projects/](https://github.com/SBNSoftware/icaruscode) it is extracted from - - use a version link: add at the bottom of the page a link definition, and then use the link as `[version]` + - use a version link: add at the bottom of the page a link definition, and then use the link as `_[[version]]_` (renders like: _[[v09_63_00]]_) - if the version you look for is not registered yet, use it anyway and inform the [release manager](Roles_and_people.md#release-management) @@ -39,19 +39,14 @@ Timings ### Code and configuration information -- \[[v08\_19\_01](/redmine/versions/1911){.version}\] ICARUS uses the - implementation `detinfo::DetectorClocksStandard` of the detector - clocks service provider -- \[[v08\_19\_01](/redmine/versions/1911){.version}\] its - configuration happens in `icarus_detectorclocks` configuration table - defined in - [source:icaruscode/Utility/detectorclocks\_icarus.fcl](/redmine/projects/icaruscode/repository/entry/icaruscode/Utility/detectorclocks_icarus.fcl){.source} -- \[[v08\_19\_01](/redmine/versions/1911){.version}\] optical - simulation configuration is in `icarus_pmtsimulationalg_standard` - ([source:icaruscode/Light/Algorithms/pmtsimulation\_icarus.fcl](/redmine/projects/icaruscode/repository/entry/icaruscode/Light/Algorithms/pmtsimulation_icarus.fcl){.source}) +- _[[v09_63_00]]_ ICARUS uses the implementation `detinfo::DetectorClocksStandard` of the detector clocks service provider +- _[[v09_63_00]]_ its configuration happens in `icarus_detectorclocks` configuration table defined in + [`icarusalg/fcl/Services/detectorclocks_icarus.fcl`](https://github.com/SBNSoftware/icarusalg/tree/develop/fcl/Services/detectorclocks_icarus.fcl) +- _[[v09_63_00]]_ optical simulation configuration is in `icarus_pmtsimulationalg_standard` + ([`icaruscode/PMT/Algorithms/pmtsimulation_icarus.fcl`](https://github.com/SBNSoftware/icaruscode/tree/develop/icaruscode/PMT/Algorithms/pmtsimulation_icarus.fcl)) This is an excerpt of from `icarus_detectorclocks` -[v08\_19\_01](/redmine/versions/1911){.version}:\ +_[[v08_19_01]]_: G4RefTime: -1.15e3 # G4 time [us] where electronics clock counting start TriggerOffsetTPC: -0.340e3 # Time offset for TPC readout start time w.r.t. trigger [us] @@ -469,3 +464,4 @@ This is an excerpt of from `icarus_pmtsimulationalg_standard` [v08_19_01]: https://github.com/SBNSoftware/icaruscode/tree/v08_19_01 +[v09_63_00]: https://github.com/SBNSoftware/icaruscode/tree/v09_63_00 From 54e38fba7358e7049ea02d43f0b0a1ab9c54a750 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Mon, 5 Dec 2022 09:54:02 -0800 Subject: [PATCH 0426/1437] Updated SDC liaison --- icaruscode_wiki/Roles_and_people.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/icaruscode_wiki/Roles_and_people.md b/icaruscode_wiki/Roles_and_people.md index 7e4fdc116..4191a5716 100644 --- a/icaruscode_wiki/Roles_and_people.md +++ b/icaruscode_wiki/Roles_and_people.md @@ -39,11 +39,12 @@ Fermilab Scientific Computing Division ICARUS liaison This person is the preferred gate that Fermilab Scientific Computing Division (SCD) uses to communicate with the experiment. It also works the other way around, with for example the liaison conveying ICARUS requests to SCD. +A list of all liaison is available [from Fermilab Scientific Computing Division](https://fermipoint.fnal.gov/org/cs/scd/Lists/Experiment%20and%20Scientific%20Collaboration%20Liaison%20Li/AllItems.aspx) (requires Fermilab credentials). There is one liaison per experiment, who is usually a member of SCD _and_ a collaboration in the experiment. Ours is also an over-expert of all computing aspects of ICARUS! person | e-mail address ------------------ | ------------------------------ -Wesley Ketchum | +Vito Di Benedetto | From f106a287e8fd861e191b7f753bcb173850ed6d3d Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Fri, 9 Dec 2022 12:56:59 -0800 Subject: [PATCH 0427/1437] Create TapeStorage.md --- icaruscode_wiki/computing/TapeStorage.md | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 icaruscode_wiki/computing/TapeStorage.md diff --git a/icaruscode_wiki/computing/TapeStorage.md b/icaruscode_wiki/computing/TapeStorage.md new file mode 100644 index 000000000..1b71ec181 --- /dev/null +++ b/icaruscode_wiki/computing/TapeStorage.md @@ -0,0 +1,40 @@ +--- +layout: page +title: Storing data files on tape +description: Instructions on how to store data files on Fermilab Enstore. +# menubar: icaruscode_menu +# toc_title: Contents +--- + +Storing data files on tape +=========================== + +To store data files on tape, the data must be associated to a SAM definition so that they can be tracked down. +Prerequisites are to have the data contained in a single directory (no subdirectory structure), and a definition name (`` below) in mind. +If the data is made of small files, it may be a good idea to compact it into a single or a few (possibly compressed) tarball file(s). +Storage of data files is a two-step procedure. + +1. Preliminary step: setup (`sam4users`): + ``` + setup fife_utils + ``` +2. Register the files into the SAM database and associate them to a SAM definition. + To create a dataset (a SAM "definition") from all the files in the directory `/path/to/data/dir`: + ``` + sam_add_dataset -e icarus -n -d /path/to/data/dir + ``` + SAM likes unique file names, so it will append some string at the end of the file names. + If that is not desired, the option `--no-rename` will tell SAM to refrain from renaming (but I don't know what happens in case of file name collisions): + ``` + sam_add_dataset -e icarus -n -d /path/to/data/dir --no-rename + ``` + Notes: + * It is suggested that the SAM definition starts with `icarus` (in case of merge with `sbn`...). + * After creating the SAM definition, it is recommended that a description be added to it to explain the content and purpose: + ``` + samweb modify-definition -e icarus --defname= --description="ICARUS PMT laser calibration data collected in January 2022" + ``` +3. archive the dataset on tape: + ``` + sam_archive_dataset -n + ``` From e32645af0f026ce12fc74fe8e17bc2eb5b7f3900 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Fri, 9 Dec 2022 12:59:22 -0800 Subject: [PATCH 0428/1437] Added link to tape storage instructions --- icaruscode_wiki/Computing_Resources.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/icaruscode_wiki/Computing_Resources.md b/icaruscode_wiki/Computing_Resources.md index 5456f4e0a..5cffee69e 100644 --- a/icaruscode_wiki/Computing_Resources.md +++ b/icaruscode_wiki/Computing_Resources.md @@ -418,8 +418,7 @@ We also have some [StashCache storage](computing/stashCache.md). ### Tape storage Tape storage is available to ICARUS. - -Uh... er... "good to know?". +Instructions to store the data are provided in the specific [wiki page](computing/TapeStorage.md). ### File database (SAM) From e2b6343882a2c1d1a11d3cb8aab846e45a28a17e Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Dec 2022 15:34:09 +0000 Subject: [PATCH 0429/1437] Create sbnana_v09_63_00_01.md --- .../Releases/sbnana_v09_63_00_01.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_63_00_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_63_00_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_63_00_01.md new file mode 100644 index 000000000..ac7e8a1d2 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_63_00_01.md @@ -0,0 +1,37 @@ +--- +layout: page +title: sbnana_v09_63_00_01 +toc: true +--- + +sbnana_v09_63_00_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +12 December 2022 + +Purpose +--------------------------------------------------- +* Production patch release + +New features +--------------------------------------------------- +A new patch to the production release SBN2022B of sbnanacode (v09_63_00_01) has been cut and distributed + +* sbnana (v09_63_00_01): + + Using: + * sbnanaobj v09_20_00_01 + + Includes: + * Feature/rh test caf #79 + + +Extra info +--------------------------------------------------- + This is a patch to the production release it introduces a breaking change into the CAFs (details on #79) This will be merged to develop. From faceefb6500c5a62959cd337010023af134a4ec5 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Dec 2022 15:41:17 +0000 Subject: [PATCH 0430/1437] Create sbncode_sbnana_v09_63_01.md --- .../Releases/sbncode_sbnana_v09_63_01.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_63_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_63_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_63_01.md new file mode 100644 index 000000000..2569ffd98 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_63_01.md @@ -0,0 +1,53 @@ +--- +layout: page +title: sbncode_sbnana_v09_63_01 +toc: true +--- + +sbncode_sbnana_v09_63_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +12 December 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_63_01) has been cut and distributed + +* sbncode (v09_63_01): + Using: + * larsoft v09_63_01 + * sbnanaobj v09_20_01 + * sbndaq_artdaq_core v1_04_02of0 + * sbnobj v09_15_01 + * nusystematics v01_01_01 + + Includes: + * SBNSoftware/sbnanaobj production PRs into develop #87 + * SBNSoftware/sbnobj production PRs into develop #73 + * SBNSoftware/sbncode production PRs into develop #320 + + +* sbnana (v09_63_01): + + Using: + * ifdhc v2_6_10 + * sbnanaobj v09_20_01 + + Includes: + * SBNSoftware/sbnana production PRs into develop #91 + + + +Extra info +--------------------------------------------------- +As merged from the production it introduces the breaking change into the CAFs and new dependencies (systematicstools, nusystematics) From 8065b1e1814a14ae1dcc73d881684d2dbad16e28 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Dec 2022 15:44:00 +0000 Subject: [PATCH 0431/1437] Update List_of_SBN_code_releases.md --- .../Releases/List_of_SBN_code_releases.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 2e2dd1a94..3ee1236e7 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -9,12 +9,14 @@ List of `sbncode` releases These are the releases tagged until now: -| Version | Notes | Detailed Notes -|----------------|----------------------------------|-------------------------------------------- -`v09_63_00_02` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02) -`v09_63_00_01` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01) -`SBN2022B` | 'sbnana' autumn production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_SBN2022B) -`SBN2022B` | 'sbncode' autumn production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B) +| Version | Notes | Detailed Notes +|----------------|-----------------------------------|-------------------------------------------- +`v09_63_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_ v09_63_01) +`v09_63_00_01` | 'sbnana' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_63_00_01) +`v09_63_00_02` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02) +`v09_63_00_01` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01) +`SBN2022B` | 'sbnana' autumn production release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_SBN2022B) +`SBN2022B` | 'sbncode' autumn production release|[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_SBN2022B) `v09_62_00_02` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_02) `v09_62_00_01` | 'sbncode' patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_62_00_01) |`v09_62_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_62_00) From 11b0c504e7cc174fe64364694ad2ebfe90959198 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 12 Dec 2022 15:48:37 +0000 Subject: [PATCH 0432/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 3ee1236e7..74b2cbabf 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,7 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- -`v09_63_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_ v09_63_01) +`v09_63_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_63_01) `v09_63_00_01` | 'sbnana' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_63_00_01) `v09_63_00_02` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02) `v09_63_00_01` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_01) From 357e3b570423f56550d0aebc9e59017dc76bf09c Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 12 Dec 2022 10:54:45 -0600 Subject: [PATCH 0433/1437] Update development.md --- sbn_online_wiki/development/development.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/development/development.md b/sbn_online_wiki/development/development.md index 453fac9b2..8bdb419c9 100644 --- a/sbn_online_wiki/development/development.md +++ b/sbn_online_wiki/development/development.md @@ -40,9 +40,22 @@ Observations: - What happens? Is data lost or corrupted? Debugging needed -## Trigger: +## Trigger - issue with starting trigger improved by changing version of trigger vi - Unclear reason why run 9093 has some files with no stream in their name. More information needed. Is there anything different about Event Builders 21 and 26? The boot file name is saved in run_records. --> The reason could be that in configuration "Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_00002" the line "physics.my_output_modules: [ testOutput, rootNetOutput ]" in EventBuilder21.fcl and EventBuilder26.fcl is not commented + - Automatic starting DAQ when the run starts? ## Very long time to start and to stop the DAQ - A potential reason might be that the boardreaders start to produce fragments before the run starts, and don't necessarily stop to produce fragments when the run stops. + +## Managing the logfiles + - during the summer/fall of 2022 the size of the logfiles was greatly reduced + - we decided the only file we really need to preserve is /daq/log/DAQInterface_partition1.log . The SLAM group is helping us to arrange it + +## Automatic e-mail/slack notifications in case of DAQ issues requireing prompt attention + +## Automatic sending of an e-log when the run starts and stops + +## FTS +- setup necessary FTS and CRL services start automatically at boot +- setup an alarm if the service stops From 6b2b7ea4dc32e9321bad3b62902a26dd33cce393 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 12 Dec 2022 11:28:51 -0600 Subject: [PATCH 0434/1437] Update development.md --- sbn_online_wiki/development/development.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/development/development.md b/sbn_online_wiki/development/development.md index 8bdb419c9..d4d8b6d8a 100644 --- a/sbn_online_wiki/development/development.md +++ b/sbn_online_wiki/development/development.md @@ -27,6 +27,8 @@ Observations: - possibly other boardreaders too, but less often – not sure if it's the same issue! +## Loss of PMT boardreaders + - Seems to occur at higher trigger rates (e.g. out of spill), e.g. 5_5 configuration crashes each several hours ## Shared memory problems resulting in OM interruptions with run crashes - less issues recently @@ -43,7 +45,7 @@ Observations: ## Trigger - issue with starting trigger improved by changing version of trigger vi - Unclear reason why run 9093 has some files with no stream in their name. More information needed. Is there anything different about Event Builders 21 and 26? The boot file name is saved in run_records. --> The reason could be that in configuration "Calibration_MINBIAS_BNB_Thr400_Majority10_FixedWindow_4Hz_00002" the line "physics.my_output_modules: [ testOutput, rootNetOutput ]" in EventBuilder21.fcl and EventBuilder26.fcl is not commented - - Automatic starting DAQ when the run starts? + - Automatic starting trigger when the run starts? → development started ## Very long time to start and to stop the DAQ - A potential reason might be that the boardreaders start to produce fragments before the run starts, and don't necessarily stop to produce fragments when the run stops. @@ -53,8 +55,10 @@ Observations: - we decided the only file we really need to preserve is /daq/log/DAQInterface_partition1.log . The SLAM group is helping us to arrange it ## Automatic e-mail/slack notifications in case of DAQ issues requireing prompt attention +- https://github.com/art-daq/artdaq_mfextensions/blob/develop/mfextensions/Destinations/SMTP_mfPlugin.cc -## Automatic sending of an e-log when the run starts and stops +## Automatic sending of an e-log message when the run starts and stops +- C++ ELOG code for reference: https://github.com/art-daq/otsdaq_utilities/tree/develop/otsdaq-utilities/ECLWriter ## FTS - setup necessary FTS and CRL services start automatically at boot From 5ed5ad3c4528c8dcc6691d6585d8f4cb4822e885 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Wed, 14 Dec 2022 12:15:52 -0600 Subject: [PATCH 0435/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 92d61ef15..7c1e1e7ae 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_04_00 as of 10/2022) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_04_01 as of 12/2022) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` @@ -206,7 +206,7 @@ export MRB_PROJECT=sbndaq ``` And then to checkout and build `sbndaq` and `sbndaq-artdaq` (most common situation) source the script below _from your work directory_: ```bash -setup sbndaq v1_04_00 -q e20:prof:s112 +setup sbndaq v1_04_01 -q e20:prof:s112 export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) echo sbndaq version: $my_sbndaq_version From 97c726a95bd90ce7597f37dd28ac6b0468de27f3 Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Thu, 15 Dec 2022 14:35:16 +0100 Subject: [PATCH 0436/1437] make DAQ version a wild card There was some switch between the older DAQ version (v1_01_00) and the current DAQ version (v1_02_00) for some runs in Run 1 period, so I made this subfolder a wild card to allow the find method to find the required files. --- icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh b/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh index 3d30eb95f..038974aac 100644 --- a/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh +++ b/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh @@ -81,14 +81,14 @@ if [[ -f "listtotalrawfiles.temp" ]]; then fi # find files with the appropriate run number and stream -find /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/v1_01_00/icarus_daq_v1_01_00/daq/00/00/${r1}/${r2} -type f -name "data*.root" | awk -Fdata_dl '{print "data_dl"$2}' >& listtotalrawfiles.temp +find /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/*/icarus_daq_*/daq/00/00/${r1}/${r2} -type f -name "data*.root" | awk -Fdata_dl '{print "data_dl"$2}' >& listtotalrawfiles.temp # count total available files on tape area n_total=`wc -l listtotalrawfiles.temp | awk '{print $1}'` # check if files online for f in `cat listtotalrawfiles.temp`; do - cat /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/v1_01_00/icarus_daq_v1_01_00/daq/00/00/${r1}/${r2}/".(get)(${f})(locality)" | grep ONLINE >> listofonlinefiles.temp; + cat /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/*/icarus_daq_*/daq/00/00/${r1}/${r2}/".(get)(${f})(locality)" | grep ONLINE >> listofonlinefiles.temp; done # count how many are online From 1c7541090db47112ba1419e5117d2ff876e96c1b Mon Sep 17 00:00:00 2001 From: Maya Wospakrik Date: Thu, 15 Dec 2022 15:01:54 +0100 Subject: [PATCH 0437/1437] add the ability to save the online files --- .../samples/scripts/checkRawFilesOnlineStatus.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh b/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh index 038974aac..a2436f526 100644 --- a/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh +++ b/icaruscode_wiki/samples/scripts/checkRawFilesOnlineStatus.sh @@ -87,8 +87,11 @@ find /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/*/icarus_daq_*/daq/00/00 n_total=`wc -l listtotalrawfiles.temp | awk '{print $1}'` # check if files online -for f in `cat listtotalrawfiles.temp`; do - cat /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/*/icarus_daq_*/daq/00/00/${r1}/${r2}/".(get)(${f})(locality)" | grep ONLINE >> listofonlinefiles.temp; +for f in `cat listtotalrawfiles.temp`; do + status=`cat /pnfs/icarus/archive/sbn/sbn_fd/data/raw/${stream}/*/icarus_daq_*/daq/00/00/${r1}/${r2}/".(get)(${f})(locality)" | grep ONLINE`; + if [[ $status == *"ONLINE"* ]]; then + echo "$f" >> listofonlinefiles.temp; + fi done # count how many are online @@ -99,8 +102,12 @@ if [[ "${stream}" == "*" ]]; then stream="all" fi +# copy the list of online files +cp listofonlinefiles.temp run${run}_${stream}_online_files.list + # print result -echo "Online files for run number: ${run} and stream name: ${stream}: ${n_online} files out of available ${n_total} files" +echo "Online files for run number: ${run} and stream name: ${stream}: ${n_online} files out of available ${n_total} files. The list of online files can be found in run${run}_${stream}_online_files.list" + # clear the temporary output files rm listtotalrawfiles.temp From c701d4f57b222b2cfe710ba2d9c4d33314e0f161 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 15 Dec 2022 16:58:23 +0000 Subject: [PATCH 0438/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index cd2b0dfa6..fbc42b2a5 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_63_00_02`. | Patch release SBN-2022B | [Release Notes](ReleaseNotes09630002.html) |`v09_63_00`. | Production release SBN-2022B | [Release Notes](ReleaseNotes096300.html) |`v09_62_00_01` | Test release for cetmodules | [Release Notes](ReleaseNotes09620002.html) |`v09_62_00`. | Weekly release | [Release Notes](ReleaseNotes096200.html) From a419eeea87f73be8a40c2db1ebe4e07c1fc4e1d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 15 Dec 2022 17:01:42 +0000 Subject: [PATCH 0439/1437] Create ReleaseNotes09630002.md --- .../Releases/ReleaseNotes09630002.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes09630002.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes09630002.md b/sbndcode_wiki/Releases/ReleaseNotes09630002.md new file mode 100644 index 000000000..0a81c233a --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes09630002.md @@ -0,0 +1,73 @@ +--- +layout: page +title: ReleaseNotes09630002 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.63.00.02 | 15 dic 2022 | [ReleaseNotes](ReleaseNotes09630002.html) | +| --- | --- | --- | + + + +sbndcode v09_63_00_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_63_00_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_63_00_02/sbndcode-v09_63_00_02.html) + +Purpose +--------------------------------------------------- +Patch release SBN2022B + +New features +--------------------------------------------------- +- SBNSoftware/sbndcode#303 +- SBNSoftware/sbndcode#293 + +Bug fixes +--------------------------------------------------- +- SBNSoftware/sbndcode#310 + +Updated dependencies +--------------------------------------------------- +- sbncode v09_63_00_02 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2022-12-15 Fran Nicolas : Update to version v09_63_00_02 +* 2022-12-15 Francisco Javier Nicolás-Arnaldos : Merge pull request #293 from SBNSoftware/feature/rh_allPFOs +* 2022-12-14 rhowell42 : removed superfluous line 128 +* 2022-12-12 rhowell42 : Added UseAllParticle tags to the shower creation modules used here. +* 2022-12-12 Francisco Javier Nicolás-Arnaldos : update to sbncode v09_63_00_02 +* 2022-12-12 Francisco Javier Nicolás-Arnaldos : Merge pull request #310 from ikatza/feature/icaza_fix_testFHiCLfiles +* 2022-12-12 Francisco Javier Nicolás-Arnaldos : Merge pull request #303 from ikatza/feature/icaza_fm_newmets +* 2022-11-21 Iker de Icaza Astiz : Update sbnd_data again +* 2022-11-18 Iker de Icaza Astiz : Rename fcls to avoid collisions and make clear they're SBND's +* 2022-11-15 Iker de Icaza Astiz : Merge branch 'develop' into feature/icaza_fm_newmets +* 2022-11-14 Fran Nicolas : Merge tag 'v09_63_00' into develop +* 2022-10-07 Iker de Icaza Astiz : Merge branch 'develop' into feature/icaza_fm_newmets +* 2022-10-05 Iker de Icaza Astiz : Update fcl to match the code +* 2022-09-12 Iker de Icaza Astiz : Create various fcls to run with SCE services +* 2022-09-12 Iker de Icaza Astiz : Create and use relevant SCE table +* 2022-09-12 Iker de Icaza Astiz : Load backtracker and particle inventory systems by default +* 2022-09-12 Iker de Icaza Astiz : Comments on future development +* 2022-09-05 Iker de Icaza Astiz : Only match potential nu candidates +* 2022-09-05 Iker de Icaza Astiz : Update the templates binning to have reduce the range and number of bins +* 2022-08-22 Iker de Icaza Astiz : Correct the drift distance when scoring +* 2022-08-19 Iker de Icaza Astiz : Change some histos params, update names and other odd bits +* 2022-08-10 Iker de Icaza Astiz : Merge branch 'develop' into feature/icaza_fm_newmets +* 2022-08-09 Ryan Howell : added lines to track and shower creation blocks to run the creations over all PFOs +* 2022-07-08 Iker de Icaza Astiz : Add option to correct drift distance using hypotetical flash time +* 2022-07-08 Iker de Icaza Astiz : Force metrics creation to only match one flash in the beam spill +* 2022-07-08 Iker de Icaza Astiz : Update fcl params to use new features, add comments of work to do + +sbndutil +--------------------------------------------------- + +* 2022-11-14 Fran Nicolas : Merge tag 'v09_63_00' into develop From eb5157decd266cb7bc90b5d3a1706266f9f9f1ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 15 Dec 2022 18:36:06 +0000 Subject: [PATCH 0440/1437] Create ReleaseNotes096301.md --- sbndcode_wiki/Releases/ReleaseNotes096301.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096301.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096301.md b/sbndcode_wiki/Releases/ReleaseNotes096301.md new file mode 100644 index 000000000..b498fd495 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096301.md @@ -0,0 +1 @@ +/ From a3c191357a39440788fb33539aa86c057364ed21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 15 Dec 2022 18:36:51 +0000 Subject: [PATCH 0441/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index fbc42b2a5..e36b6a74d 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_63_01`. | Weekly release. | [Release Notes](ReleaseNotes096301.html) |`v09_63_00_02`. | Patch release SBN-2022B | [Release Notes](ReleaseNotes09630002.html) |`v09_63_00`. | Production release SBN-2022B | [Release Notes](ReleaseNotes096300.html) |`v09_62_00_01` | Test release for cetmodules | [Release Notes](ReleaseNotes09620002.html) From b0adf1e4ab60698b8ddee0c984cb6598263eca14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 15 Dec 2022 19:12:51 +0000 Subject: [PATCH 0442/1437] Update ReleaseNotes096301.md --- sbndcode_wiki/Releases/ReleaseNotes096301.md | 100 ++++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/ReleaseNotes096301.md b/sbndcode_wiki/Releases/ReleaseNotes096301.md index b498fd495..0d1146525 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes096301.md +++ b/sbndcode_wiki/Releases/ReleaseNotes096301.md @@ -1 +1,99 @@ -/ +--- +layout: page +title: ReleaseNotes096301 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.63.01 | 15 dic 2022 | [ReleaseNotes](ReleaseNotes096301.html) | +| --- | --- | --- | + + + +sbndcode v09_63_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_63_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_63_01/sbndcode-v09_63_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +- SBNSoftware/sbndcode#309 + - Updated PDS reco1 used in our standard fhicls +- SBNSoftware/sbndcode#303 + - Improvements and corrections to the Simple Flash Matcher +- SBNSoftware/sbndcode#293 + - Added lines to track/shower creation blocks to run the creations over all PFOs + +Bug fixes +--------------------------------------------------- +- SBNSoftware/sbndcode#310 + +Updated dependencies +--------------------------------------------------- +- sbncode v09_63_01 +- larsoft v09_63_01 +- sbnd_data v1_16_00 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2022-12-15 Fran Nicolas : Merge branch 'release/v09_63_01' +* 2022-12-15 Fran Nicolas : Update to larsoft v09_63_01 +* 2022-12-15 Francisco Javier Nicolás-Arnaldos : Merge pull request #309 from SBNSoftware/feature/pdsdeco_workflow +* 2022-12-15 Francisco Javier Nicolás-Arnaldos : Merge pull request #312 from SBNSoftware/release/SBN2022B +* 2022-12-15 Fran Nicolas : Update to version v09_63_00_02 +* 2022-12-15 Francisco Javier Nicolás-Arnaldos : Merge pull request #293 from SBNSoftware/feature/rh_allPFOs +* 2022-12-14 rhowell42 : removed superfluous line 128 +* 2022-12-12 rhowell42 : Added UseAllParticle tags to the shower creation modules used here. +* 2022-12-12 Francisco Javier Nicolás-Arnaldos : update to sbncode v09_63_00_02 +* 2022-12-12 Francisco Javier Nicolás-Arnaldos : Merge pull request #310 from ikatza/feature/icaza_fix_testFHiCLfiles +* 2022-12-12 Francisco Javier Nicolás-Arnaldos : Merge pull request #303 from ikatza/feature/icaza_fm_newmets +* 2022-12-07 Fran Nicolas : Remove deprecated headers +* 2022-11-23 Fran Nicolas : Solve seg faults in flash algorithm +* 2022-11-23 Fran Nicolas : Standarize ophit labels +* 2022-11-23 Fran Nicolas : Update OpChRange to match current geo +* 2022-11-23 Fran Nicolas : Remove readout delay from opflash t0 +* 2022-11-23 Fran Nicolas : Remove deprecated PDS deco production fhicls +* 2022-11-21 Iker de Icaza Astiz : Update sbnd_data again +* 2022-11-18 Iker de Icaza Astiz : Rename fcls to avoid collisions and make clear they're SBND's +* 2022-11-17 Rodrigo Alvarez Garrote : added xarapucas opflashes +* 2022-11-17 Rodrigo Alvarez Garrote : added xarapuca deconvolved wvfs and hits, set saturation value from detsim values +* 2022-11-15 Fran Nicolas : Remove cout +* 2022-11-15 Fran Nicolas : Add opdeconvolution workflow to the standards fhicl +* 2022-11-15 Fran Nicolas : Switch to measured PMT SER +* 2022-11-15 Fran Nicolas : Add option to skip saturated signals in opdeco +* 2022-11-15 Fran Nicolas : Conf fhicls restructuring +* 2022-11-15 Iker de Icaza Astiz : Merge branch 'develop' into feature/icaza_fm_newmets +* 2022-11-14 Fran Nicolas : Merge tag 'v09_63_00' into develop +* 2022-10-07 Iker de Icaza Astiz : Merge branch 'develop' into feature/icaza_fm_newmets +* 2022-10-05 Iker de Icaza Astiz : Update fcl to match the code +* 2022-09-12 Iker de Icaza Astiz : Create various fcls to run with SCE services +* 2022-09-12 Iker de Icaza Astiz : Create and use relevant SCE table +* 2022-09-12 Iker de Icaza Astiz : Load backtracker and particle inventory systems by default +* 2022-09-12 Iker de Icaza Astiz : Comments on future development +* 2022-09-05 Iker de Icaza Astiz : Only match potential nu candidates +* 2022-09-05 Iker de Icaza Astiz : Update the templates binning to have reduce the range and number of bins +* 2022-08-22 Iker de Icaza Astiz : Correct the drift distance when scoring +* 2022-08-19 Iker de Icaza Astiz : Change some histos params, update names and other odd bits +* 2022-08-10 Iker de Icaza Astiz : Merge branch 'develop' into feature/icaza_fm_newmets +* 2022-08-09 Ryan Howell : added lines to track and shower creation blocks to run the creations over all PFOs +* 2022-07-08 Iker de Icaza Astiz : Add option to correct drift distance using hypotetical flash time +* 2022-07-08 Iker de Icaza Astiz : Force metrics creation to only match one flash in the beam spill +* 2022-07-08 Iker de Icaza Astiz : Update fcl params to use new features, add comments of work to do + +sbndutil +--------------------------------------------------- + +* 2022-12-15 Fran Nicolas : Merge tag 'v09_63_01' into develop +* 2022-12-15 Fran Nicolas : Merge branch 'release/v09_63_01' +* 2022-12-15 Fran Nicolas : Update to larsoft v09_63_01 +* 2022-11-14 Fran Nicolas : Merge tag 'v09_63_00' into develop From f6e0df88fb5f1f2616d2a3edff2e6e374f0d72a9 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 16 Dec 2022 10:39:44 +0000 Subject: [PATCH 0443/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 74b2cbabf..787f0ac12 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_64_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_64_01) `v09_63_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_63_01) `v09_63_00_01` | 'sbnana' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_63_00_01) `v09_63_00_02` | 'sbncode' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_63_00_02) From 0f0689efabd274d6333df27e4b6f64b1d39228ba Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 16 Dec 2022 10:44:32 +0000 Subject: [PATCH 0444/1437] Create sbncode_sbnana_v09_64_01.md --- .../Releases/sbncode_sbnana_v09_64_01.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_64_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_64_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_64_01.md new file mode 100644 index 000000000..e17bb9656 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_64_01.md @@ -0,0 +1,46 @@ +--- +layout: page +title: sbncode_sbnana_v09_64_01 +toc: true +--- + +sbncode_sbnana_v09_64_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +16 December 2022 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_64_01) has been cut and distributed + +* sbncode (v09_64_01): + Using: + * larsoft v09_64_01 + * sbnobj v09_15_02 + * lardataobj v09_13_02 + * genie_xsec v3_02_00 + * nusystematics v01_02_04 + + Includes: + * SBNSoftware/sbncode Adding correct genie cross section dependencies #318 + + + +* sbnana (v09_64_01): + + Using: + * ifdhc v2_6_11 + + +Extra info +--------------------------------------------------- From 9ed599cdc0cb26c4a53ee0704fc58db40f092055 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Fri, 16 Dec 2022 14:28:54 +0000 Subject: [PATCH 0445/1437] Update ReleaseNotes096301.md --- sbndcode_wiki/Releases/ReleaseNotes096301.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sbndcode_wiki/Releases/ReleaseNotes096301.md b/sbndcode_wiki/Releases/ReleaseNotes096301.md index 0d1146525..539ef2bda 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes096301.md +++ b/sbndcode_wiki/Releases/ReleaseNotes096301.md @@ -40,6 +40,12 @@ Updated dependencies - larsoft v09_63_01 - sbnd_data v1_16_00 +Extra info +--------------------------------------------------- +This tag introduces to breaking changes: +- Updated CAF structure, produces both a track and a shower for every PFParticle (details in SBNSoftware/sbndcode#293) +- Refactored PDS reco1 workflow including signal deconvolution is now used by default in the stadard fhicls (details in SBNSoftware/sbndcode#309) + Change List ========================================== From bbee3e533b5a45cd0c06ad8cf7f49bc4a14d251c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 22 Dec 2022 08:51:02 +0000 Subject: [PATCH 0446/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index e36b6a74d..e121b60f4 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_64_01`. | Weekly release. | [Release Notes](ReleaseNotes096401.html) |`v09_63_01`. | Weekly release. | [Release Notes](ReleaseNotes096301.html) |`v09_63_00_02`. | Patch release SBN-2022B | [Release Notes](ReleaseNotes09630002.html) |`v09_63_00`. | Production release SBN-2022B | [Release Notes](ReleaseNotes096300.html) From 2d9931181d527b97810d000f282fa9239b866b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 22 Dec 2022 08:55:20 +0000 Subject: [PATCH 0447/1437] Create ReleaseNotes096401.md --- sbndcode_wiki/Releases/ReleaseNotes096401.md | 55 ++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096401.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096401.md b/sbndcode_wiki/Releases/ReleaseNotes096401.md new file mode 100644 index 000000000..41144b88f --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096401.md @@ -0,0 +1,55 @@ +--- +layout: page +title: ReleaseNotes096401 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.64.01 | 22 dic 2022 | [ReleaseNotes](ReleaseNotes096401.html) | +| --- | --- | --- | + + + +sbndcode v09_64_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_64_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_64_01/sbndcode-v09_64_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_64_01 +* larsoft v09_64_01 + +Extra info +--------------------------------------------------- +Using genie v3_02_02 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2022-12-21 Fran Nicolas : Merge branch 'release/v09_64_01' +* 2022-12-16 Fran Nicolas : Update to larsoft v09_64_01 +* 2022-12-15 Fran Nicolas : Merge tag 'v09_63_01' into develop + +sbndutil +--------------------------------------------------- + +* 2022-12-21 Fran Nicolas : Merge tag 'v09_64_01' into develop +* 2022-12-21 Fran Nicolas : Merge branch 'release/v09_64_01' +* 2022-12-16 Fran Nicolas : Update to larsoft v09_64_01 +* 2022-12-15 Fran Nicolas : Merge tag 'v09_63_01' into develop From 778bcbff601822ca7e9245c82ff60c959cc296ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tereza=20Kroupov=C3=A1?= Date: Fri, 6 Jan 2023 10:08:41 -0500 Subject: [PATCH 0448/1437] Update DAQ.md Adding a section to collect encountered DAQ errors and their solutions --- sbndcode_wiki/DAQ.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/DAQ.md b/sbndcode_wiki/DAQ.md index 87acd6664..1d7abbd56 100644 --- a/sbndcode_wiki/DAQ.md +++ b/sbndcode_wiki/DAQ.md @@ -17,6 +17,7 @@ Wiki page for the SBND DAQ - [SBND Grafana Tutorial](https://sbnsoftware.github.io/sbn_online_wiki/sbnd_grafana_tutorial.html) - [SBND TPC DAQ (old Redmine link)](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/SBND_TPC_DAQ) - [2018 Vertical Slice Test TPC Troubleshooting (old Redmine link)](https://cdcvs.fnal.gov/redmine/projects/sbndaq/wiki/Issues_with_TPC) +- [List of Ecountered DAQ Errors](https://sbnsoftware.github.io/sbndcode_wiki/daq_errors.html) [CABCON Information](CABCON_Information.html) -------------------------------------------------------------------------------------------------------------------- From cc70e0060a262a54a5f9fb88842630e9ab53ea41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tereza=20Kroupov=C3=A1?= Date: Fri, 6 Jan 2023 10:30:44 -0500 Subject: [PATCH 0449/1437] Create daq_errors.md --- sbndcode_wiki/daq_errors.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 sbndcode_wiki/daq_errors.md diff --git a/sbndcode_wiki/daq_errors.md b/sbndcode_wiki/daq_errors.md new file mode 100644 index 000000000..a2274c1b3 --- /dev/null +++ b/sbndcode_wiki/daq_errors.md @@ -0,0 +1,23 @@ +--- +layout: page +title: List of DAQ Errors +--- + + +This page lists various previously encountered DAQ errors and their possible solutions. Errors are sorted by subsystem. + + +PTB +========================================================== + +#### 1. Unable to get lock while trying to report the current state +```Error / ptb01PUSH_BoardReaderCore +06-Jan-2023 07:46:01 CST +sbnd-ptb01.fnal.gov (131.225.250.158) +UDPMessage 0 / PID 211609 / BoardReaderCore.cc:345 +boardreader / Starting / Booted +Timeout (60 s) while waiting for Start after receive_fragments thread started! +Unable to get lock while trying to report the current state, returning busy +``` + +This error appeared after the PTB network was accidentally unplugged. A full reboot of the Microzed Linux solved the problem. Also tried restarting the ptb service which did not solve the problem. From 149def2bbb30855f0deae09f3dc906b4dfb8c417 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 10 Jan 2023 10:56:21 -0600 Subject: [PATCH 0450/1437] Update Boardreaders.md --- sbn_online_wiki/Boardreaders.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbn_online_wiki/Boardreaders.md b/sbn_online_wiki/Boardreaders.md index 427eb1471..803435424 100644 --- a/sbn_online_wiki/Boardreaders.md +++ b/sbn_online_wiki/Boardreaders.md @@ -3,8 +3,8 @@ | Name | Lead developers | Documentation | Documentation Complete | | ---- | -------------- | ------------- | ---------------------- | | CRT | A.Aduszkiewicz, E.Yandel | [CAEN DT5702](CRT/CAEN_DT5702_readout.md) | ? | -| PMT | D. Rivera, W. Badgett | | | -| TPC | | | | +| PMT | M. Vicenzi, D. Rivera, W. Badgett | | | +| TPC | H. Hausner | | | | ICARUS trigger | J.Zettlemoyer, D.Torretta, W.Ketchum | | | | SBND trigger | J. Sensenig| | | | WR | D.Torretta, W.Badgett | [White Rabbit Timing System](WR/WhiteRabbit.md) | | From 7bd68f60274f1bce6f6396a87a74ab5b9896dc89 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 18 Jan 2023 21:56:48 +0000 Subject: [PATCH 0451/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 787f0ac12..ae1743f5e 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_65_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_01) `v09_64_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_64_01) `v09_63_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_63_01) `v09_63_00_01` | 'sbnana' production patch release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbnana_v09_63_00_01) From b849b0b18c5b4ef03b676247ca205b217c3188e5 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 18 Jan 2023 22:05:40 +0000 Subject: [PATCH 0452/1437] Create sbncode_v09_65_01.md --- .../Releases/sbncode_v09_65_01.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_01.md new file mode 100644 index 000000000..40a67865a --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_01.md @@ -0,0 +1,41 @@ +--- +layout: page +title: sbncode_v09_65_01 +toc: true +--- + +sbncode_v09_65_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +18 January 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new weeklyrelease sbncode (v09_65_01) has been cut and distributed + +* sbncode (v09_65_01): + + Using: + * larsoft v09_65_01 + * sbnobj v09_15_03 + * lardataobj v09_13_03 + + + Includes: + * SBNSoftware/sbncode Accommodate breaking changes in geometry #322 + + +Extra info +--------------------------------------------------- + This is a realase to accommodate the geoometry changes introduced all across larsoft, more info: +https://github.com/LArSoft/larsoft/releases/tag/v09_65_00 From 60259075bbcaec7b402ab4af34221ff1249ff223 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:23:24 -0600 Subject: [PATCH 0453/1437] Update index.md --- index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/index.md b/index.md index 9800fc443..78c4408cb 100644 --- a/index.md +++ b/index.md @@ -48,6 +48,7 @@ See below for helpful links: ## Operations ## * [ICARUS Operations](Operations/SBN_FD/index) +* [SBND Operations](Operations/SBN_ND/index) ## SBN Young Guide ## * [SBN Young Guide](SBNYoung/SBNYoungIndex.md) From ecb93dcd48700b4290282e59bc2a913b863d6e92 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:27:11 -0600 Subject: [PATCH 0454/1437] Update Wiki.md --- sbndcode_wiki/Wiki.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode_wiki/Wiki.md b/sbndcode_wiki/Wiki.md index ef1c4c720..5472c52dc 100644 --- a/sbndcode_wiki/Wiki.md +++ b/sbndcode_wiki/Wiki.md @@ -126,6 +126,8 @@ Useful Tidbits of Information. [DAQ](DAQ.html) -------------------------------------------------------------------------------------------------- +[CRT](CRT.html) +-------------------------------------------------------------------------------------------------- [SBND Assembly Master Document](SBND_Assembly_Master_Document.html) ------------------------------------------------------------------------------------------------------------------------------------- From 36f5322ee6ea1accf96a6e915f2c778406cca8f8 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:33:01 -0600 Subject: [PATCH 0455/1437] Update Wiki.md --- sbndcode_wiki/Wiki.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Wiki.md b/sbndcode_wiki/Wiki.md index 5472c52dc..f2120f022 100644 --- a/sbndcode_wiki/Wiki.md +++ b/sbndcode_wiki/Wiki.md @@ -126,6 +126,7 @@ Useful Tidbits of Information. [DAQ](DAQ.html) -------------------------------------------------------------------------------------------------- + [CRT](CRT.html) -------------------------------------------------------------------------------------------------- From eceade4d8153b4f39c1b5e27359a6d078f51f7c5 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:36:56 -0600 Subject: [PATCH 0456/1437] Create CRT.md --- sbndcode_wiki/CRT.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 sbndcode_wiki/CRT.md diff --git a/sbndcode_wiki/CRT.md b/sbndcode_wiki/CRT.md new file mode 100644 index 000000000..e8ce1b52f --- /dev/null +++ b/sbndcode_wiki/CRT.md @@ -0,0 +1,4 @@ +SBND CRT + +Wiki page for the SBND DAQ + From adcd8ec719e39053dad4a17bf5908c24617743c5 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:43:09 -0600 Subject: [PATCH 0457/1437] Update CRT.md --- sbndcode_wiki/CRT.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT.md b/sbndcode_wiki/CRT.md index e8ce1b52f..84f2ddd2d 100644 --- a/sbndcode_wiki/CRT.md +++ b/sbndcode_wiki/CRT.md @@ -1,4 +1,17 @@ +--- +layout: page +title: SBND CRT +--- + + + SBND CRT +========================================================== -Wiki page for the SBND DAQ +Wiki page for the SBND CRT +- [Getting a DAQ Account](https://sbnsoftware.github.io/sbn_online_wiki/Getting_a_DAQ_account.html) +- [CRT## DAQ Getting Started](https://sbnsoftware.github.io/sbndaq_oldwiki/SBND_DAQ_GettingStarted.html) +- [CRT## Pages](https://sbnsoftware.github.io/sbn_online_wiki/CRT_sharp_sharp.html) +- [Aframe Teststand Pages](https://sbnsoftware.github.io/sbn_online_wiki/CRT_aframe.html) +- [FEB Pages](https://sbnsoftware.github.io/sbn_online_wiki/CRT_FEB.html) From f16c81a8266ed0dba0b3e8bfeb6498ddfdce273a Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:44:15 -0600 Subject: [PATCH 0458/1437] Create CRT_aframe.html --- sbndcode_wiki/CRT_aframe.html | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 sbndcode_wiki/CRT_aframe.html diff --git a/sbndcode_wiki/CRT_aframe.html b/sbndcode_wiki/CRT_aframe.html new file mode 100644 index 000000000..f0c1cd200 --- /dev/null +++ b/sbndcode_wiki/CRT_aframe.html @@ -0,0 +1,3 @@ + + +Aframe stuff goes here From 7dacb9f5ccdfb14e169d3f98a61a7087ce8621c5 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:44:49 -0600 Subject: [PATCH 0459/1437] Create CRT_sharp_sharp.md --- sbndcode_wiki/CRT_sharp_sharp.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sbndcode_wiki/CRT_sharp_sharp.md diff --git a/sbndcode_wiki/CRT_sharp_sharp.md b/sbndcode_wiki/CRT_sharp_sharp.md new file mode 100644 index 000000000..c196a4e4a --- /dev/null +++ b/sbndcode_wiki/CRT_sharp_sharp.md @@ -0,0 +1,2 @@ + +CRT ## stuff goes here From 7a29c2061baba2d45cd8787f5ef65c85e2efe564 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:45:14 -0600 Subject: [PATCH 0460/1437] Create FEB.md --- sbndcode_wiki/CRT/FEB.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sbndcode_wiki/CRT/FEB.md diff --git a/sbndcode_wiki/CRT/FEB.md b/sbndcode_wiki/CRT/FEB.md new file mode 100644 index 000000000..e5610d0bf --- /dev/null +++ b/sbndcode_wiki/CRT/FEB.md @@ -0,0 +1,2 @@ + +FEB related stuff goes here From b8e896c1ed5e9b16966a5222f8fd77dd55754b18 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:52:04 -0600 Subject: [PATCH 0461/1437] Update CRT.md --- sbndcode_wiki/CRT.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbndcode_wiki/CRT.md b/sbndcode_wiki/CRT.md index 84f2ddd2d..da032a816 100644 --- a/sbndcode_wiki/CRT.md +++ b/sbndcode_wiki/CRT.md @@ -12,6 +12,6 @@ Wiki page for the SBND CRT - [Getting a DAQ Account](https://sbnsoftware.github.io/sbn_online_wiki/Getting_a_DAQ_account.html) - [CRT## DAQ Getting Started](https://sbnsoftware.github.io/sbndaq_oldwiki/SBND_DAQ_GettingStarted.html) -- [CRT## Pages](https://sbnsoftware.github.io/sbn_online_wiki/CRT_sharp_sharp.html) -- [Aframe Teststand Pages](https://sbnsoftware.github.io/sbn_online_wiki/CRT_aframe.html) -- [FEB Pages](https://sbnsoftware.github.io/sbn_online_wiki/CRT_FEB.html) +- [CRT## Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT_sharp_sharp.md) +- [Aframe Teststand Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT_aframe.md) +- [FEB Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT/FEB.md) From 45204423d1ef13818c48696dff610dc3936c1644 Mon Sep 17 00:00:00 2001 From: eyandel Date: Thu, 19 Jan 2023 16:19:59 -0600 Subject: [PATCH 0462/1437] Update FEB.md --- sbndcode_wiki/CRT/FEB.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/FEB.md b/sbndcode_wiki/CRT/FEB.md index e5610d0bf..79f40bca8 100644 --- a/sbndcode_wiki/CRT/FEB.md +++ b/sbndcode_wiki/CRT/FEB.md @@ -1,2 +1,14 @@ -FEB related stuff goes here +various CRT FEB documents: + +[SBND Cosmic Ray Tracker Front-End Board V3.0 technical description and operation manual by Igor](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=685&filename=feb-v3-0-1.pdf&version=7) + +[CAEN CRT FEB Manual](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24416&filename=UM5833_User%20Manual%20A1702_rev.4.pdf&version=1) + +[Citiroc1A Datasheet](https://www.weeroc.com/my-weeroc/download-center/citiroc-1a/16-citiroc1a-datasheet-v2-5/file) + +[SBND CRT Beam Telescope Technical Note](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=1657&filename=sbnd-cosmic-ray.pdf&version=3) + +[SBND Cosmic Ray Tracker Design and Performance Technical Note](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=685&filename=SBND_CRT_Technical_Note.pdf&version=7) + +[CAEN DT5702 Wiki](https://sbnsoftware.github.io/sbn_online_wiki/CRT/CAEN_DT5702_readout.html) From af574577ff5d8af072c2b85ec2f31876dde18a8a Mon Sep 17 00:00:00 2001 From: eyandel Date: Thu, 19 Jan 2023 16:22:41 -0600 Subject: [PATCH 0463/1437] Update CRT_sharp_sharp.md --- sbndcode_wiki/CRT_sharp_sharp.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode_wiki/CRT_sharp_sharp.md b/sbndcode_wiki/CRT_sharp_sharp.md index c196a4e4a..c56283533 100644 --- a/sbndcode_wiki/CRT_sharp_sharp.md +++ b/sbndcode_wiki/CRT_sharp_sharp.md @@ -1,2 +1,4 @@ CRT ## stuff goes here + +![CRT## Diagram](https://user-images.githubusercontent.com/29582622/213575569-7c85d66e-a29c-4864-bf36-594adc6b7af7.png) From 627c6cb51801b7adf2f2c4b5e8128172e59c6ddb Mon Sep 17 00:00:00 2001 From: eyandel Date: Thu, 19 Jan 2023 16:28:18 -0600 Subject: [PATCH 0464/1437] Update FEB.md --- sbndcode_wiki/CRT/FEB.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/CRT/FEB.md b/sbndcode_wiki/CRT/FEB.md index 79f40bca8..9b10fbcce 100644 --- a/sbndcode_wiki/CRT/FEB.md +++ b/sbndcode_wiki/CRT/FEB.md @@ -12,3 +12,4 @@ various CRT FEB documents: [SBND Cosmic Ray Tracker Design and Performance Technical Note](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=685&filename=SBND_CRT_Technical_Note.pdf&version=7) [CAEN DT5702 Wiki](https://sbnsoftware.github.io/sbn_online_wiki/CRT/CAEN_DT5702_readout.html) + From 1dc6ac449171c523df57b3ce6b0accfedf4c2e7a Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 17:15:30 -0600 Subject: [PATCH 0465/1437] Create Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sbndcode_wiki/CRT/Aframe.md diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md new file mode 100644 index 000000000..1fb4df528 --- /dev/null +++ b/sbndcode_wiki/CRT/Aframe.md @@ -0,0 +1,2 @@ + +A frame stuff goes here From fb45525a30eb690016d26ec85aec4d90f3b23870 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 17:16:34 -0600 Subject: [PATCH 0466/1437] Update CRT.md --- sbndcode_wiki/CRT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT.md b/sbndcode_wiki/CRT.md index da032a816..7301956e3 100644 --- a/sbndcode_wiki/CRT.md +++ b/sbndcode_wiki/CRT.md @@ -13,5 +13,5 @@ Wiki page for the SBND CRT - [Getting a DAQ Account](https://sbnsoftware.github.io/sbn_online_wiki/Getting_a_DAQ_account.html) - [CRT## DAQ Getting Started](https://sbnsoftware.github.io/sbndaq_oldwiki/SBND_DAQ_GettingStarted.html) - [CRT## Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT_sharp_sharp.md) -- [Aframe Teststand Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT_aframe.md) +- [Aframe Teststand Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT/Aframe.md) - [FEB Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT/FEB.md) From bef4102eb71cf3529feff3b5b64ba71927e77cd6 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:39:35 -0600 Subject: [PATCH 0467/1437] Create Vscan.md --- sbndcode_wiki/CRT/DataSharps/Vscan.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 sbndcode_wiki/CRT/DataSharps/Vscan.md diff --git a/sbndcode_wiki/CRT/DataSharps/Vscan.md b/sbndcode_wiki/CRT/DataSharps/Vscan.md new file mode 100644 index 000000000..77a6f22b5 --- /dev/null +++ b/sbndcode_wiki/CRT/DataSharps/Vscan.md @@ -0,0 +1,13 @@ +Voltage scan January 18-20, 2023 +** Downstream Sharp only +** FEB 89 data is corrupted +** voltages are changed on FEB 79 only, all 32 channels set to same voltage value +** note trig 22 is down_crt_hit+beam_spill, trig 23 is every beam spill +Data files are here /daq/scratch/crtbeamdata/ + +Run 4774 - trig 22, voltage=120, 22 files +Run 4777 - trig 23, voltage=160, 1310 files +Run 4778 - trig 23, voltage=140, 1412 files +Run 4779 - trig 23, voltage=120, 1717 files +Run 4780 - trig 22, voltage=120, 17 files +Run 4781 - trig 22, voltage=160, From eb69736daa9a409c532b98886e47a60e33a90248 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:40:10 -0600 Subject: [PATCH 0468/1437] Update CRT_sharp_sharp.md --- sbndcode_wiki/CRT_sharp_sharp.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbndcode_wiki/CRT_sharp_sharp.md b/sbndcode_wiki/CRT_sharp_sharp.md index c56283533..f7d87a647 100644 --- a/sbndcode_wiki/CRT_sharp_sharp.md +++ b/sbndcode_wiki/CRT_sharp_sharp.md @@ -1,4 +1,11 @@ +--- +layout: page +title: CRT ## Wiki +--- + CRT ## stuff goes here ![CRT## Diagram](https://user-images.githubusercontent.com/29582622/213575569-7c85d66e-a29c-4864-bf36-594adc6b7af7.png) + +- [Voltage Scan Jan 19, 2023](https://sbnsoftware.github.io/sbndcode_wiki/CRT/DataSharps/Vscan.md) From 6cd57afefb13ebcd74ad24752c256fabdb55ac24 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:46:14 -0600 Subject: [PATCH 0469/1437] Update Vscan.md --- sbndcode_wiki/CRT/DataSharps/Vscan.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/sbndcode_wiki/CRT/DataSharps/Vscan.md b/sbndcode_wiki/CRT/DataSharps/Vscan.md index 77a6f22b5..d19d324b5 100644 --- a/sbndcode_wiki/CRT/DataSharps/Vscan.md +++ b/sbndcode_wiki/CRT/DataSharps/Vscan.md @@ -1,13 +1,24 @@ Voltage scan January 18-20, 2023 + ** Downstream Sharp only + ** FEB 89 data is corrupted + ** voltages are changed on FEB 79 only, all 32 channels set to same voltage value + ** note trig 22 is down_crt_hit+beam_spill, trig 23 is every beam spill + Data files are here /daq/scratch/crtbeamdata/ -Run 4774 - trig 22, voltage=120, 22 files -Run 4777 - trig 23, voltage=160, 1310 files -Run 4778 - trig 23, voltage=140, 1412 files -Run 4779 - trig 23, voltage=120, 1717 files -Run 4780 - trig 22, voltage=120, 17 files -Run 4781 - trig 22, voltage=160, +- Run 4774 - trig 22, voltage=120, 22 files + +- Run 4777 - trig 23, voltage=160, 1310 files + +- Run 4778 - trig 23, voltage=140, 1412 files + +- Run 4779 - trig 23, voltage=120, 1717 files + +- Run 4780 - trig 22, voltage=120, 17 files + +- Run 4781 - trig 22, voltage=160, + From cd17ab40d93cae15a38df9df0c5fcb96c56fceeb Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Thu, 19 Jan 2023 18:49:50 -0600 Subject: [PATCH 0470/1437] Update CRT_sharp_sharp.md --- sbndcode_wiki/CRT_sharp_sharp.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/CRT_sharp_sharp.md b/sbndcode_wiki/CRT_sharp_sharp.md index f7d87a647..28409f070 100644 --- a/sbndcode_wiki/CRT_sharp_sharp.md +++ b/sbndcode_wiki/CRT_sharp_sharp.md @@ -8,4 +8,5 @@ CRT ## stuff goes here ![CRT## Diagram](https://user-images.githubusercontent.com/29582622/213575569-7c85d66e-a29c-4864-bf36-594adc6b7af7.png) +Special Runs - [Voltage Scan Jan 19, 2023](https://sbnsoftware.github.io/sbndcode_wiki/CRT/DataSharps/Vscan.md) From f03df46ab34e71b3d956c6bf57bb664f2671ad4c Mon Sep 17 00:00:00 2001 From: Steven Gardiner Date: Fri, 20 Jan 2023 11:32:46 -0700 Subject: [PATCH 0471/1437] Update index.md --- AnalysisInfrastructure/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AnalysisInfrastructure/index.md b/AnalysisInfrastructure/index.md index d770bcb4e..21f87a0c8 100644 --- a/AnalysisInfrastructure/index.md +++ b/AnalysisInfrastructure/index.md @@ -1,10 +1,10 @@ # Welcome to SBN Analysis Infrastructure Group Wiki Page -Coordinators: [Wes Ketchum and Joseph Zennamo](mailto:wketchum@fnal.gov,jaz8600@fnal.gov) +Coordinators: [Giuseppe Cerati and Steven Gardiner](mailto:cerati@fnal.gov,gardiner@fnal.gov) This group is intended to help enable the SBN Program physics goals by provide robust software and resource support. -We'll use this wiki page for tracking group goals, progress, and release information. If you have any questions please reachout to the coordinators [Wes Ketchum and Joseph Zennamo](mailto:wketchum@fnal.gov,jaz8600@fnal.gov). +We'll use this wiki page for tracking group goals, progress, and release information. If you have any questions please reachout to the coordinators [Giuseppe Cerati and Steven Gardiner](mailto:cerati@fnal.gov,gardiner@fnal.gov). **If you are looking to get started quickly check out our [Getting Started Page](gettingstarted.md)!** @@ -29,7 +29,7 @@ Meetings: Wednesdays, 9:00 CT ### [Production and Data Management](https://sbnsoftware.github.io/sbn/sbnprod_wiki/Wiki) -Conveners: [Mateus F. Carneiro and Maya Wospakrik](mailto:sbn-mc-prod@fnal.gov) +Conveners: [Mateus F. Carneiro and Ivan Caro Terrazas](mailto:sbn-mc-prod@fnal.gov) From 0f55f3e4954d4c11f59894d5c4d0d227731718f6 Mon Sep 17 00:00:00 2001 From: hjscott1 <74778773+hjscott1@users.noreply.github.com> Date: Fri, 20 Jan 2023 14:33:40 -0600 Subject: [PATCH 0472/1437] Added introductory information --- sbndcode_wiki/CRT/Aframe.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 1fb4df528..dafadd25c 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -1,2 +1,10 @@ +A-frame mounted with 7 CRT modules (0.96m x 2.73m) placed horizontally and vertically in coincidence for the purposes of module/FEB characterisation using cosmic ray muons. Characterisation tests involve measuring the ADC distribution from SiPMs for MIP muons passing through several modules in coincidence. -A frame stuff goes here +![image](https://user-images.githubusercontent.com/74778773/213795237-d53fb05a-e550-49a3-9da4-1f4d4470836f.png) +Figure 1 - Left: Picture of the A-frame setup in the SBN-ND building. Right: Diagram showing the orientation of CRTs with their FEB number (red arrows) and the daisy-chain connection between each FEB (pink arrows) with their respective cable length converted to ns signal delay. + +A schematic of the A-frame is shown in figure 1, outlining the daisy-chained cabling between the FEBs connected to the CRTs. The cables connect the T0, T1, Tin and Tout inputs of the FEBs in the following order: + +DAQ ----> 92 --2ns--> 73 --10ns--> 75 --6ns--> 76 --8ns--> 72 --6ns--> 71 --8ns--> 82 + +The Tin and Tout daisy-chain loops back from 82 to 92, whereas the T0 and T1 chain terminates at 82. From 90242124d3932966fb98ecad7b357c3dee89a525 Mon Sep 17 00:00:00 2001 From: hjscott1 <74778773+hjscott1@users.noreply.github.com> Date: Fri, 20 Jan 2023 15:40:43 -0600 Subject: [PATCH 0473/1437] Added working directory --- sbndcode_wiki/CRT/Aframe.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index dafadd25c..3bc09e6e2 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -1,3 +1,5 @@ +A-frame Setup + A-frame mounted with 7 CRT modules (0.96m x 2.73m) placed horizontally and vertically in coincidence for the purposes of module/FEB characterisation using cosmic ray muons. Characterisation tests involve measuring the ADC distribution from SiPMs for MIP muons passing through several modules in coincidence. ![image](https://user-images.githubusercontent.com/74778773/213795237-d53fb05a-e550-49a3-9da4-1f4d4470836f.png) @@ -8,3 +10,8 @@ A schematic of the A-frame is shown in figure 1, outlining the daisy-chained cab DAQ ----> 92 --2ns--> 73 --10ns--> 75 --6ns--> 76 --8ns--> 72 --6ns--> 71 --8ns--> 82 The Tin and Tout daisy-chain loops back from 82 to 92, whereas the T0 and T1 chain terminates at 82. + +Working Directory +ssh into evb04, then run the crtnoise_launchdaq.sh script to set up A-frame working directory (DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface). + +The crt config file is crt01.fcl. From 973352505ef2a63e136766dd31a5de812c54a044 Mon Sep 17 00:00:00 2001 From: hjscott1 <74778773+hjscott1@users.noreply.github.com> Date: Fri, 20 Jan 2023 15:41:07 -0600 Subject: [PATCH 0474/1437] Fixed formatting --- sbndcode_wiki/CRT/Aframe.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 3bc09e6e2..6338be54f 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -12,6 +12,7 @@ DAQ ----> 92 --2ns--> 73 --10ns--> 75 --6ns--> 76 --8ns--> 72 --6ns--> 71 --8ns- The Tin and Tout daisy-chain loops back from 82 to 92, whereas the T0 and T1 chain terminates at 82. Working Directory + ssh into evb04, then run the crtnoise_launchdaq.sh script to set up A-frame working directory (DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface). The crt config file is crt01.fcl. From f4518cf4ff6c381249778817e2878b2eaa57d107 Mon Sep 17 00:00:00 2001 From: mstancar <64853056+mstancar@users.noreply.github.com> Date: Sat, 21 Jan 2023 08:57:52 -0600 Subject: [PATCH 0475/1437] Update CRT.md --- sbndcode_wiki/CRT.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sbndcode_wiki/CRT.md b/sbndcode_wiki/CRT.md index 7301956e3..340dabeeb 100644 --- a/sbndcode_wiki/CRT.md +++ b/sbndcode_wiki/CRT.md @@ -15,3 +15,14 @@ Wiki page for the SBND CRT - [CRT## Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT_sharp_sharp.md) - [Aframe Teststand Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT/Aframe.md) - [FEB Pages](https://sbnsoftware.github.io/sbndcode_wiki/CRT/FEB.md) + +--------------------------------------------------------------- + +Installation/commissioning + - mailing list: sbnd-crt@fnal.gov + - Meeting schedule: + - Overall status and summary presenations: Wed 11-12 CT bi-weekly + - Weekly informal, "working" meeting - time tbd + - [Balls not to drop list] (https://docs.google.com/document/d/1Ks7o-0uks8byfCQZza6akoy4R47Y8g6mhs5yNa-uy_U/edit?usp=sharing) + +------------------------------------------------------------------ From 832b3dac99536d665ef9ad5c014362a577027406 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 24 Jan 2023 12:22:57 -0600 Subject: [PATCH 0476/1437] Update DAQLogfiles.md --- sbn_online_wiki/DAQLogfiles.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn_online_wiki/DAQLogfiles.md b/sbn_online_wiki/DAQLogfiles.md index 334e7642c..0dcd2785e 100644 --- a/sbn_online_wiki/DAQLogfiles.md +++ b/sbn_online_wiki/DAQLogfiles.md @@ -35,6 +35,8 @@ PMT logs include FragmentWatcher messages. ### DAQInterface A single file with logs from DAQInterface is in: `/daq/log/DAQInterface_partition1.log`. This is a file to check if a run crashes before starts. It also includes timestamps of run start and stop. +The file is backed up. In order to access the backup, one should file a ticket. In case of emergency one could request SLAM be paged. + ### File Transfer Service Logs for Xporter, FTS and File Cleanup are stored in `/daq/log/fts_logs`. From 0aabf75c79e62351f12ca2d477b371a87ad6565a Mon Sep 17 00:00:00 2001 From: hjscott1 <74778773+hjscott1@users.noreply.github.com> Date: Tue, 24 Jan 2023 16:11:05 -0600 Subject: [PATCH 0477/1437] Added further information on directories --- sbndcode_wiki/CRT/Aframe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 6338be54f..fc34e0d63 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -13,6 +13,6 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe Working Directory -ssh into evb04, then run the crtnoise_launchdaq.sh script to set up A-frame working directory (DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface). +ssh into evb04, then run the crtnoise_launchdaq.sh script to set up A-frame working directory (DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface) where the DAQInterface is run. The crt config file is crt01.fcl. -The crt config file is crt01.fcl. +Raw data is stored in /daq/scratch/crtbeamoffdata/. Analysis scripts are in /home/nfs/sbnd/Aframe, with each run's analysed root file in the runs folder, all of which analysed using the analyze_event.fcl file. From a176c9ba325c384a1246e32d1e5a090a1ebe4992 Mon Sep 17 00:00:00 2001 From: Gennadiy Date: Wed, 25 Jan 2023 15:32:22 -0600 Subject: [PATCH 0478/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 7c1e1e7ae..0fec64400 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -37,7 +37,7 @@ source /daq/software/products_dev/setup #dev area ```bash ups list -aK+ sbndaq -qe20:s112:prof ``` -It's recommended you use the latest available version (this is currently v1_04_01 as of 12/2022) with e20:prof:s112 as the option. Then, to set up, use: +It's recommended you use the latest available version (this is currently v1_05_00 as of 01/2023) with e20:prof:s112 as the option. Then, to set up, use: ```bash setup sbndaq v#_##_## -qe20:prof:s112 ``` @@ -55,7 +55,7 @@ If you're doing development work, then you'll want to be able to create a develo 1. Setup the `mrb` environment: ```bash -setup mrb v6_04_05 +setup mrb v6_07_09 export MRB_PROJECT=sbndaq export my_sbndaq_version=$(echo $SETUP_SBNDAQ |cut -d " " -f 2) export my_sbndaq_quals=$(echo $SETUP_SBNDAQ |cut -d " " -f 8) @@ -88,7 +88,7 @@ mrb g *Note:* you may need to do some setup of your github account with proper SSH keys. See [here](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh).) *Note:* This will pull from the HEAD of the develop branch and include any changes that may have been pushed since the last tag (`v#_##_##`) was created. Alternatively, if you want to build the tagged, working version that was set up in the previous steps, directly: ```bash -mrb g @ +mrb g @ ``` 92 --2ns--> 73 --10ns--> 75 --6ns--> 76 --8ns--> 72 --6ns--> 71 --8ns- The Tin and Tout daisy-chain loops back from 82 to 92, whereas the T0 and T1 chain terminates at 82. -Working Directory +#Working Directory -ssh into evb04, then run the crtnoise_launchdaq.sh script to set up A-frame working directory (DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface) where the DAQInterface is run. The crt config file is crt01.fcl. +ssh into evb04, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. -Raw data is stored in /daq/scratch/crtbeamoffdata/. Analysis scripts are in /home/nfs/sbnd/Aframe, with each run's analysed root file in the runs folder, all of which analysed using the analyze_event.fcl file. +Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. From 12202ba88ae8f2e1cbc9cc2e150a96cb9f37a3eb Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 13:44:08 -0600 Subject: [PATCH 0487/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 78e27d019..cad32c231 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -10,7 +10,7 @@ DAQ ----> 92 --2ns--> 73 --10ns--> 75 --6ns--> 76 --8ns--> 72 --6ns--> 71 --8ns- The Tin and Tout daisy-chain loops back from 82 to 92, whereas the T0 and T1 chain terminates at 82. -#Working Directory +# Working Directory ssh into evb04, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. From 31d272f52b8c996516db9839837b8bc2530bf3ef Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 13:44:53 -0600 Subject: [PATCH 0488/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index cad32c231..6a84af951 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -12,8 +12,8 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe # Working Directory -ssh into evb04, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. +- ssh into evb04, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. -Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. +- Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. -Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. +- Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. From 2a805211aba4eb091e8f82af0231f9a18b5019ca Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 13:48:12 -0600 Subject: [PATCH 0489/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 6a84af951..a490cfae1 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -16,4 +16,6 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe - Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. +- Please fill in the [run logs](https://docs.google.com/document/d/1q-qUrJCBgM7efkzxSDImp_Q4yCbnfjuymjgMClU22Zc/edit) whe taking data. + - Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. From e18087492d8cf3ef8430c6b493bb199088b04ff8 Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:16:07 -0600 Subject: [PATCH 0490/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index a490cfae1..d5f05a81b 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -10,8 +10,9 @@ DAQ ----> 92 --2ns--> 73 --10ns--> 75 --6ns--> 76 --8ns--> 72 --6ns--> 71 --8ns- The Tin and Tout daisy-chain loops back from 82 to 92, whereas the T0 and T1 chain terminates at 82. -# Working Directory +# Taking the data +## working directory - ssh into evb04, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. - Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. From 7b7861c1a05ae63f01babb5a2f3d37b98009f4ba Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:20:50 -0600 Subject: [PATCH 0491/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index d5f05a81b..c86e762ce 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -9,14 +9,16 @@ A schematic of the A-frame is shown in figure 1, outlining the daisy-chained cab DAQ ----> 92 --2ns--> 73 --10ns--> 75 --6ns--> 76 --8ns--> 72 --6ns--> 71 --8ns--> 82 The Tin and Tout daisy-chain loops back from 82 to 92, whereas the T0 and T1 chain terminates at 82. + -# Taking the data - -## working directory +# working directory - ssh into evb04, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. +- Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. + +# Instructions for data taking - Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. - Please fill in the [run logs](https://docs.google.com/document/d/1q-qUrJCBgM7efkzxSDImp_Q4yCbnfjuymjgMClU22Zc/edit) whe taking data. -- Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. + From 9c710accceb79b6238e56a0199abc8dce5361d37 Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:21:15 -0600 Subject: [PATCH 0492/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index c86e762ce..c2c61226e 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -1,4 +1,4 @@ -# A-frame Setup +# A-frame setup A-frame mounted with 7 CRT modules (0.96m x 2.73m) placed horizontally and vertically in coincidence for the purposes of module/FEB characterisation using cosmic ray muons. Characterisation tests involve measuring the ADC distribution from SiPMs for MIP muons passing through several modules in coincidence. ![image](https://user-images.githubusercontent.com/74778773/213795237-d53fb05a-e550-49a3-9da4-1f4d4470836f.png) @@ -11,7 +11,7 @@ DAQ ----> 92 --2ns--> 73 --10ns--> 75 --6ns--> 76 --8ns--> 72 --6ns--> 71 --8ns- The Tin and Tout daisy-chain loops back from 82 to 92, whereas the T0 and T1 chain terminates at 82. -# working directory +# Working directory - ssh into evb04, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. - Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. From 46efd07fba588281bd806dcfb311a310d770520b Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:26:14 -0600 Subject: [PATCH 0493/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index c2c61226e..bf39d7368 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -21,4 +21,7 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe - Please fill in the [run logs](https://docs.google.com/document/d/1q-qUrJCBgM7efkzxSDImp_Q4yCbnfjuymjgMClU22Zc/edit) whe taking data. +- Grafana for CRT monitor: + - [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=28335&filename=Grafana%20Tutorial.pdf&version=1) include all details about the CRT monitor grafana page. + From 04f320a52b3c12c01d7a18b306abb04c82c2bfca Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:26:41 -0600 Subject: [PATCH 0494/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index bf39d7368..62a9b2530 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -16,7 +16,7 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe - Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. -# Instructions for data taking +# Side notes for data taking - Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. - Please fill in the [run logs](https://docs.google.com/document/d/1q-qUrJCBgM7efkzxSDImp_Q4yCbnfjuymjgMClU22Zc/edit) whe taking data. From 9ea7ad30e8eafd0f70c6c828f8f10fefe778061c Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:31:14 -0600 Subject: [PATCH 0495/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 62a9b2530..603ff88e4 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -19,7 +19,7 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe # Side notes for data taking - Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. -- Please fill in the [run logs](https://docs.google.com/document/d/1q-qUrJCBgM7efkzxSDImp_Q4yCbnfjuymjgMClU22Zc/edit) whe taking data. +- Please fill in the [run logs](https://docs.google.com/document/d/1q-qUrJCBgM7efkzxSDImp_Q4yCbnfjuymjgMClU22Zc/edit) when taking data. - Grafana for CRT monitor: - [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=28335&filename=Grafana%20Tutorial.pdf&version=1) include all details about the CRT monitor grafana page. From a9e3acab63c06a8328532164538ece47fc977b21 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 31 Jan 2023 16:54:22 +0000 Subject: [PATCH 0496/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 3957b3241..567774620 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_66_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_00) `v09_65_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_03) `v09_65_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_01) `v09_64_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_64_01) From 5626569b2ae5b4564a5d4ad16d61c28aa228f9e8 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 31 Jan 2023 17:00:01 +0000 Subject: [PATCH 0497/1437] Create sbncode_v09_66_00.md --- .../Releases/sbncode_v09_66_00.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_00.md new file mode 100644 index 000000000..17a97d43d --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_00.md @@ -0,0 +1,44 @@ +--- +layout: page +title: sbncode_v09_66_00 +toc: true +--- + +sbncode_v09_66_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +31 January 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new weekly release sbncode (v09_66_00) has been cut and distributed + +* sbncode (v09_66_00): + + Using: + * larsoft v09_66_00 + * sbnobj v09_15_05 + * sbnanaobj v09_20_03 + + + Including: + * SBNSoftware/sbncode CMakeLists.txt fixed for SystToolsEventWeight #327 + * SBNSoftware/sbncode Bugfix to Calibration NTupler.#328 + * SBNSoftware/sbncode Add in tau-coupled HNL mode to MeVPrtl generator #332 + * SBNSoftware/sbnobj Change kaon->meson to clarify different possible parents #75 + * SBNSoftware/sbnanaobj Add in var for partial decay widths. #92 + + + +Extra info +--------------------------------------------------- From 9dfd69e459811e3b964f4b7cf4fa80b62771e855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 31 Jan 2023 20:52:14 +0000 Subject: [PATCH 0498/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index e121b60f4..f27264cc3 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_66_00`. | Weekly release. | [Release Notes](ReleaseNotes096600.html) |`v09_64_01`. | Weekly release. | [Release Notes](ReleaseNotes096401.html) |`v09_63_01`. | Weekly release. | [Release Notes](ReleaseNotes096301.html) |`v09_63_00_02`. | Patch release SBN-2022B | [Release Notes](ReleaseNotes09630002.html) From 6a9d4947ab7dc47e190298518a266ad8ecae47b3 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 31 Jan 2023 14:52:31 -0600 Subject: [PATCH 0499/1437] Monitoring --- sbn_online_wiki/ICARUS_FTS.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 955ee4281..be86a20ab 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -36,7 +36,7 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: # What happens to files - EventBuilder writes file to /data/daq area -- When closed, file is renamed +- When closed, file is renamed according to the naming convention described above - Xporter.py process kicks in (icarus user): - Looks for completed files (by name) in /data/daq - Moves file from /data/daq to /data/fts_dropbox @@ -115,5 +115,27 @@ https://github.com/SBNSoftware/sbndaq-xporter/tree/develop/Xporter - Talk to offline! - Maybe some massive problem with tape ... if files don’t get locations on tape, then they won’t be removed from online cluster +# Monitoring +## grafana +The following page provides overview of FTS from all Event Builder Machines: +https://fifemon.fnal.gov/monitor/d/000000032/fts?orgId=1&from=now-30d&to=now&refresh=5m&var-experiment=icarus&var-instance=icarus-fts-icarus-evb01&var-instance=icarus-fts-icarus-evb02&var-instance=icarus-fts-icarus-evb03&var-instance=icarus-fts-icarus-evb04&var-instance=icarus-fts-icarus-evb05&var-instance=icarus-fts-icarus-evb06 + +## FTS status +Tunnel required: + +```ssh -KL 8787:localhost:8787 icarus@icarus-evb01.fnal.gov -J icarus@icarus-gateway01.fnal.gov``` + +http://localhost:8787/fts/status + +More details for a single EVB, in particular status of individual files. + +## Pool Manager + +Requires VPN, or web browser certificate + +https://fndca.fnal.gov:22880/pools/list/PoolManager + +Provides information on status of the usage of the IcarusReadWritePools space. + # References SBN docdb 27829 (ICARUS data handling observations, Sep 12, 2022) From 358c3da4a2d7f3def3cbca4eff8e5193f3d6a8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 31 Jan 2023 21:17:52 +0000 Subject: [PATCH 0500/1437] Create ReleaseNotes096600.md --- sbndcode_wiki/Releases/ReleaseNotes096600.md | 108 +++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096600.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096600.md b/sbndcode_wiki/Releases/ReleaseNotes096600.md new file mode 100644 index 000000000..5c39f4650 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096600.md @@ -0,0 +1,108 @@ +--- +layout: page +title: ReleaseNotes096600 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.66.00 | 31 ene 2023 | [ReleaseNotes](ReleaseNotes096600.html) | +| --- | --- | --- | + + + +sbndcode v09_66_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_66_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_66_00/sbndcode-v09_66_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* SBNSoftware/sbndcode#311 + * Accommodate breaking changes in geometry (pursuant to LArSoft/larcorealg#34) +* SBNSoftware/sbndcode#313 + * Basic fcl files set up to run the MeVPrtl generator for Heavy Neutral Lepton production +* SBNSoftware/sbndcode#314 + * PR to update the software trigger metric producer modules +* Updates to CI tests: + * SBNSoftware/sbndcode#315 + * Necessary updates to utilise new geometry in gallery tests + * SBNSoftware/sbndcode#316 + * Bring the fast sim/reco unit tests into the 2020s + * SBNSoftware/sbndcode#317 + * Remove conflicting sbnd_crtsim table + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_66_00 +* larsoft v09_66_00 + +Extra info +--------------------------------------------------- +* This is the first `sbndcode` release that accomodates the geometry changes introduced in +LArSoft `v09_65_00`(see https://github.com/LArSoft/larsoft/releases/tag/v09_65_00). +* Following up the geometry changes, issues regarding the reconstruciton stage were found (see LArSoft/larpandora#30, solved in `larsoft v09_66_00`) and no `sbndcode v09_65_*` tags were cut. + + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-01-31 Fran Nicolas : Merge branch 'release/v09_66_00' +* 2023-01-31 Fran Nicolas : Update to larsoft v09_66_00 +* 2023-01-26 Francisco Javier Nicolás-Arnaldos : Merge pull request #317 from SBNSoftware/bugfix/hlay_crtsim_table +* 2023-01-26 Francisco Javier Nicolás-Arnaldos : Merge pull request #316 from SBNSoftware/feature/hlay_unit_tests +* 2023-01-26 Francisco Javier Nicolás-Arnaldos : Merge pull request #314 from SBNSoftware/feature/lynnt_pmt_softtrig +* 2023-01-26 Francisco Javier Nicolás-Arnaldos : Merge pull request #313 from SBNSoftware/feature/lnguyen_hnl_gen_sbnd_fcl +* 2023-01-25 Francisco Javier Nicolás-Arnaldos : Update to larsoft v09_65_03 +* 2023-01-23 Vu Chi Lan Nguyen : new fcl +* 2023-01-20 Francisco Javier Nicolás-Arnaldos : Merge pull request #315 from SBNSoftware/bugfix/hlay_geom +* 2023-01-19 Henry Lay : Remove conflicting sbnd_crtsim table +* 2023-01-19 Henry Lay : Bring the fast sim/reco unit tests into the 2020s +* 2023-01-19 Francisco Javier Nicolás-Arnaldos : Update product_deps +* 2023-01-19 Henry Lay : Necessary updates to utilise new geometry +* 2023-01-20 Francisco Javier Nicolás-Arnaldos : Merge pull request #311 from knoepfel/geom-iterator-interface +* 2023-01-12 Vu Chi Lan Nguyen : fix hnl header file +* 2023-01-12 Vu Chi Lan Nguyen : Merge branch 'develop' into feature/lnguyen_hnl_gen_sbnd_fcl +* 2023-01-12 Vu Chi Lan Nguyen : Merge branch 'lnguyen/v09_64_01' into feature/lnguyen_hnl_gen_sbnd_fcl +* 2023-01-12 Vu Chi Lan Nguyen : rename fcl up to standard +* 2023-01-10 lynnt-uchicago : create PMT and CRT specific folders, add README's +* 2023-01-10 lynnt-uchicago : fix bugs and clean +* 2023-01-10 lynnt-uchicago : fix bug in startIdx and triggerTime definition +* 2023-01-10 lynnt-uchicago : update verbose messages +* 2023-01-10 lynnt-uchicago : add output root tree, clean up +* 2023-01-10 lynnt-uchicago : clean up fcl labels +* 2023-01-08 lynnt-uchicago : update to read trigger objects from vectors +* 2023-01-08 lynnt-uchicago : rename boolean metric fcl parameters +* 2023-01-08 lynnt-uchicago : put CRTmetric object into a vector +* 2023-01-05 lynnt-uchicago : uncomment output root tree lines +* 2023-01-05 lynnt-uchicago : add pmt software trig changes to metric producer +* 2023-01-05 lynnt-uchicago : Merge tag 'v09_64_01' into feature/lynnt_pmt_softtrig +* 2023-01-05 lynnt-uchicago : initial build of software trig changes +* 2022-12-21 Fran Nicolas : Merge tag 'v09_64_01' into develop +* 2022-12-16 Vu Chi Lan Nguyen : Merge tag 'v09_63_01' of https://github.com/SBNSoftware/sbndcode into feature/lnguyen_hnl_gen_sbnd_fcl +* 2022-12-16 Vu Chi Lan Nguyen : clean no longer used folders +* 2022-12-15 Vu Chi Lan Nguyen : clean up and rearrange fcl +* 2022-12-14 Vu Chi Lan Nguyen : Merge branch 'feature/lnguyen_hnl_gen' of https://github.com/SBNSoftware/sbndcode into feature/lnguyen_hnl_gen_sbnd_fcl +* 2022-11-29 Kyle Knoepfel : Accommodate breaking changes in geometry. +* 2022-09-02 Vu Chi Lan Nguyen : hnl fcl file +* 2022-07-05 Vu Chi Lan Nguyen : first commit +* 2022-06-28 Vu Chi Lan Nguyen : add fcl file + +sbndutil +--------------------------------------------------- + +* 2023-01-31 Fran Nicolas : Merge tag 'v09_66_00' into develop +* 2023-01-31 Fran Nicolas : Merge branch 'release/v09_66_00' +* 2023-01-31 Fran Nicolas : Update to larsoft v09_66_00 +* 2022-12-21 Fran Nicolas : Merge tag 'v09_64_01' into develop From a2d405cab18c57840803446c38b6a144042e71ad Mon Sep 17 00:00:00 2001 From: Marco Del Tutto Date: Wed, 1 Feb 2023 09:23:04 -0600 Subject: [PATCH 0501/1437] Update FluxReader.md --- AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md b/AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md index d5c535516..f719b284d 100644 --- a/AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md +++ b/AnalysisInfrastructure/SimulationInfrastructure/FluxReader.md @@ -30,6 +30,7 @@ will run FluxReader with 10 input gSimple files listed in `gsimple_flux_configH- `run_fluxreader_sbnd` runs the following: - `FluxReader` (art::Source): reads each neutrino in the gSimple file, creates MCTruth, MCFlux (and Dk2Nu and NuChoice) dataproducts and places them in an art::Event - `FluxGeoFilter` (art::Filter): filters events based on the neutrino position. It moves along the neutrino direction, and only keeps events if the neutrino intersects at least one of the specified volumes. The default volume is `volTPCActive`. +- `FluxReaderAne` (art::Analyzer): analyzer that creates an output TTree with all neutrinos hitting a customizable area. Currenlty set to the SBND front face. If you'd like to run with the BooNE files as input, use ```bash From 5b25ee0f837d16872eb8dd3c99f699c322d33e15 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 2 Feb 2023 15:09:05 -0600 Subject: [PATCH 0502/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index be86a20ab..905b4057f 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -1,5 +1,9 @@ -Sep 2022 -The document summarizes various discussions during the last weeks. It needs to be turned into a proper documentation. +--- +layout: page +title: Online Data Managment in ICARUS +hero_height: is-medium +toc: true +--- # Online Data Management The File Transfer System (FTS) is managed by the Online Data Managment processes. @@ -10,7 +14,7 @@ The Online Data Management: The Online Data Management script are in the following repository: https://github.com/SBNSoftware/sbndaq-xporter -# Flow of fully-built events in DAQ +## Flow of fully-built events in DAQ ![flow-event-builds-icarus](https://user-images.githubusercontent.com/97683442/203762937-d0f7a3c9-6cb8-4817-9ecc-85bb83b5ea7c.JPG) @@ -25,7 +29,7 @@ About Event Builders: - Each icarus-evb server has 23 TB of RAID-backed disk - Across 6 servers, that’s enough for over 900K events, or ~250 hours of data at 1 Hz trigger rate -# File names +## File names For example: data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: - dl --> Data Logger @@ -34,7 +38,7 @@ data_dl24_fstrmOffBeamBNBMINBIAS_run9093_160_20221110T113956.root, where: - 160 --> nth file from this EVB for this run - 20221110T113956 --> file open timestamp -# What happens to files +## What happens to files - EventBuilder writes file to /data/daq area - When closed, file is renamed according to the naming convention described above - Xporter.py process kicks in (icarus user): @@ -127,7 +131,7 @@ Tunnel required: http://localhost:8787/fts/status -More details for a single EVB, in particular status of individual files. +Provides more details for a single EVB, in particular status of individual files. It also allows to attempt to clear errors with "retry" buttons. ## Pool Manager From 1f85d8b905fddedb3b0671b24d5a38045ad95cc4 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 6 Feb 2023 10:27:18 -0600 Subject: [PATCH 0503/1437] Update ICARUS_FTS.md --- sbn_online_wiki/ICARUS_FTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/ICARUS_FTS.md b/sbn_online_wiki/ICARUS_FTS.md index 905b4057f..9b6edaeb3 100644 --- a/sbn_online_wiki/ICARUS_FTS.md +++ b/sbn_online_wiki/ICARUS_FTS.md @@ -1,6 +1,6 @@ --- layout: page -title: Online Data Managment in ICARUS +title: Online Data Management in ICARUS hero_height: is-medium toc: true --- From f157fb803fc4613c33e0af9250bf8c2f99ca87a2 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 6 Feb 2023 12:32:47 -0600 Subject: [PATCH 0504/1437] Update sbndaq_Wiki.md --- sbn_online_wiki/sbndaq_Wiki.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index 9ed9e80ab..d854886b3 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -4,6 +4,7 @@ Developing in sbndaq * [Setup Instructions](Installation) * [Release instructions for online-related software](ReleaseInstructions) * [Development Model](DevModel) +* [2023 Git branch cleanup](2023BranchCleanup) sbndaq components and services From e92e8edaff1c83e5b60274f30036f759f0616cb3 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 6 Feb 2023 12:51:54 -0600 Subject: [PATCH 0505/1437] Create 2023BranchCleanup.md aaduszki --- sbn_online_wiki/2023BranchCleanup.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 sbn_online_wiki/2023BranchCleanup.md diff --git a/sbn_online_wiki/2023BranchCleanup.md b/sbn_online_wiki/2023BranchCleanup.md new file mode 100644 index 000000000..5518260d2 --- /dev/null +++ b/sbn_online_wiki/2023BranchCleanup.md @@ -0,0 +1,15 @@ +We have presently over 150 branches in sbndaq-artdaq and not much less in sbndaq and sbndaq-artdaq-core. In order to help us to clean it up, please look at your branches, and write down the status of each of them, in particular whether it is actively used, or needs to be preserved for other reason, or can be deleted. + +# aaduszki +## sbndaq + - feature/aaduszki-crt – old branch, can be deleted + +## sdbnaq-artdaq + - feature/aaduszki_A2795_messages – merged, can be deleted + - feature/aaduszki_V1730_messages – merged, can be deleted + - feature/aaduszki_DT5072_messages – merged, can be deleted + - feature/BERN_CRT_Board2 – branch developed by SBND, possibly not all changes are yet merged. Preserve this branch + + +## sbndaq-artdaq-core + - feature/aaduszki_TRACE_bugfix – merged, can be deleted From 00f0d06a2911415eb70b42ed3313d258c7831e97 Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Mon, 6 Feb 2023 12:52:42 -0600 Subject: [PATCH 0506/1437] Update sbndaq_Wiki.md Link to new page to organize git branch cleanup --- sbn_online_wiki/sbndaq_Wiki.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/sbndaq_Wiki.md b/sbn_online_wiki/sbndaq_Wiki.md index d854886b3..61bbf7632 100644 --- a/sbn_online_wiki/sbndaq_Wiki.md +++ b/sbn_online_wiki/sbndaq_Wiki.md @@ -4,7 +4,7 @@ Developing in sbndaq * [Setup Instructions](Installation) * [Release instructions for online-related software](ReleaseInstructions) * [Development Model](DevModel) -* [2023 Git branch cleanup](2023BranchCleanup) +* [2023 Git branch cleanup](2023BranchCleanup.md) sbndaq components and services From e865922946f5c2efefaa171669662431beedf669 Mon Sep 17 00:00:00 2001 From: Harry Hausner <56450208+hausnerh@users.noreply.github.com> Date: Tue, 7 Feb 2023 09:49:37 -0600 Subject: [PATCH 0507/1437] Update 2023BranchCleanup.md --- sbn_online_wiki/2023BranchCleanup.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbn_online_wiki/2023BranchCleanup.md b/sbn_online_wiki/2023BranchCleanup.md index 5518260d2..e7363baeb 100644 --- a/sbn_online_wiki/2023BranchCleanup.md +++ b/sbn_online_wiki/2023BranchCleanup.md @@ -13,3 +13,10 @@ We have presently over 150 branches in sbndaq-artdaq and not much less in sbndaq ## sbndaq-artdaq-core - feature/aaduszki_TRACE_bugfix – merged, can be deleted + +# hhausner +## sbndaq-artdaq + - hhausner_tpcSkew — merged, can be deleted + +## sbndaq-artdaq-core + - hhausner_compressedTPCFragment — developement of compressed TPC fragments. Do not delete From 7dd20e2ba11e18cc693b3bf6e2451ec4a9b72c66 Mon Sep 17 00:00:00 2001 From: William Badgett <25019296+wbadgett@users.noreply.github.com> Date: Tue, 7 Feb 2023 11:25:55 -0600 Subject: [PATCH 0508/1437] Update Getting_a_DAQ_account.md --- sbn_online_wiki/Getting_a_DAQ_account.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Getting_a_DAQ_account.md b/sbn_online_wiki/Getting_a_DAQ_account.md index a1245f1f9..5ff65b784 100644 --- a/sbn_online_wiki/Getting_a_DAQ_account.md +++ b/sbn_online_wiki/Getting_a_DAQ_account.md @@ -25,7 +25,7 @@ Getting an account for the SBND DAQ servers (at ND or DAB teststand) ![image](https://user-images.githubusercontent.com/29582622/198658470-bf358319-f429-485b-9732-b2ead9e6bbed.png) -7. Fill out and submit form +7. Fill out and submit form. Choose any SBND server in the server selection option. ![image](https://user-images.githubusercontent.com/29582622/198659288-29c7f765-fc67-4e28-a3e4-21ca76d76fd3.png) From 025c5f940cf278801b3755da23f47cb8714df425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EB=AC=B8=EC=A0=95?= Date: Wed, 8 Feb 2023 17:25:54 -0600 Subject: [PATCH 0509/1437] make online monitoring page --- sbndcode_wiki/Online_monitoring.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 sbndcode_wiki/Online_monitoring.md diff --git a/sbndcode_wiki/Online_monitoring.md b/sbndcode_wiki/Online_monitoring.md new file mode 100644 index 000000000..2be3e7812 --- /dev/null +++ b/sbndcode_wiki/Online_monitoring.md @@ -0,0 +1,17 @@ +--- +layout: page +title: SBND Online Monitoring +--- + + + +SBND Online Monitoring +========================================================== + +Wiki page under development... + +Relevant repositories + +- [DQM](https://github.com/SBNSoftware/sbndqm/tree/develop/sbndqm) +- [minargon](https://github.com/SBNSoftware/sbndqm/tree/develop/sbndqm) + From 9dbd85fa33edba8fc8ef293217b6a0f0eeca02b4 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 13 Feb 2023 10:42:56 +0000 Subject: [PATCH 0510/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 567774620..e48d5f898 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_66_02` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_02) `v09_66_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_00) `v09_65_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_03) `v09_65_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_01) From d85f9b09d25f62e0011385c28e2c1fa79ff03d03 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 13 Feb 2023 10:44:41 +0000 Subject: [PATCH 0511/1437] Create sbncode_v09_66_02.md --- .../Releases/sbncode_v09_66_02.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_02.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_02.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_02.md new file mode 100644 index 000000000..4bec34f42 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_02.md @@ -0,0 +1,36 @@ +--- +layout: page +title: sbncode_v09_66_02 +toc: true +--- + +sbncode_v09_66_02 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +13 February 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new weekly release sbncode (v09_66_02) has been cut and distributed + +* sbncode (v09_66_02): + + Using: + * larsoft v09_66_02 + * nusystematics v01_02_06 + + Including: + * SBNSoftware/sbncode Add addtional 2-body and 3-body final states for HNL MeVPrtl #333 + +Extra info +--------------------------------------------------- From 6d548019c3c3b219d5633963e7e3840c2b74df2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 13 Feb 2023 13:21:12 -0600 Subject: [PATCH 0512/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index f27264cc3..a76d712e3 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_66_02`. | Weekly release. | [Release Notes](ReleaseNotes096602.html) |`v09_66_00`. | Weekly release. | [Release Notes](ReleaseNotes096600.html) |`v09_64_01`. | Weekly release. | [Release Notes](ReleaseNotes096401.html) |`v09_63_01`. | Weekly release. | [Release Notes](ReleaseNotes096301.html) From 36baca8c31d9fdc21291c7a3f163664ae9b0ad47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 13 Feb 2023 13:22:09 -0600 Subject: [PATCH 0513/1437] Create ReleaseNotes096602.md --- sbndcode_wiki/Releases/ReleaseNotes096602.md | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096602.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096602.md b/sbndcode_wiki/Releases/ReleaseNotes096602.md new file mode 100644 index 000000000..99b13c427 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096602.md @@ -0,0 +1,51 @@ +--- +layout: page +title: ReleaseNotes096602 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.66.02 | 13 feb 2023 | [ReleaseNotes](ReleaseNotes096602.html) | +| --- | --- | --- | + + + +sbndcode v09_66_02 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_66_02](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_66_02/sbndcode-v09_66_02.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_66_02 +* larsoft v09_66_02 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-02-13 Fran Nicolas : Merge branch 'release/v09_66_02' +* 2023-02-13 Fran Nicolas : Update to larsoft v09_66_02 +* 2023-01-31 Fran Nicolas : Merge tag 'v09_66_00' into develop + +sbndutil +--------------------------------------------------- + +* 2023-02-13 Fran Nicolas : Merge tag 'v09_66_02' into develop +* 2023-02-13 Fran Nicolas : Merge branch 'release/v09_66_02' +* 2023-02-13 Fran Nicolas : Update to larsoft v09_66_02 +* 2023-01-31 Fran Nicolas : Merge tag 'v09_66_00' into develop From ac9f47efabf80bd7fe9c7e603238791d1f82676a Mon Sep 17 00:00:00 2001 From: afilkins <87491544+afilkins@users.noreply.github.com> Date: Fri, 17 Feb 2023 15:01:07 -0600 Subject: [PATCH 0514/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 603ff88e4..71f8c1510 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -24,4 +24,5 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe - Grafana for CRT monitor: - [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=28335&filename=Grafana%20Tutorial.pdf&version=1) include all details about the CRT monitor grafana page. - + -Leave a terminal open where you do ```ssh -KL localhost:10089:localhost:10080 sbnd@sbnd-gateway01.fnal.gov 'ssh -KL localhost:10080:localhost:10080 sbnd@sbnd-evb04.fnal.gov'``` + - Then go to localhost:10089/ in your web browser From f579e0119471e4da345bad68fefc715d6f4df6f2 Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Tue, 21 Feb 2023 14:22:08 -0600 Subject: [PATCH 0515/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 71f8c1510..7a1e00d91 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -12,7 +12,7 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe # Working directory -- ssh into evb04, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. +- ssh into evb04 with `ssh sbnd@sbnd-evb04`, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. - Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. From 57dd1097ab7ee88d808bd94729f1e879d5f05d1e Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Wed, 22 Feb 2023 17:53:31 +0000 Subject: [PATCH 0516/1437] Update The_SBND_flux_files.md --- sbndcode_wiki/The_SBND_flux_files.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sbndcode_wiki/The_SBND_flux_files.md b/sbndcode_wiki/The_SBND_flux_files.md index 7bdaa87b9..b213fc1e2 100644 --- a/sbndcode_wiki/The_SBND_flux_files.md +++ b/sbndcode_wiki/The_SBND_flux_files.md @@ -195,3 +195,10 @@ Files were produced using BooNEtoGSimple. The centre of the window has been changed from `(X, Y) = (45.7, 0) cm` to `(X, Y) = (-73.78, 0) cm`, as in the current design. Otherwise, it uses an identical window setup to ConfigG-v1. + +### ConfigJ-v1 + +Files were produced using BooNEtoGSimple. +The flux file now includes a variables called vtx that stores hadron time of flight and neutrino time of flight from production to flux window. +Check [sbndcode PR #??]() and sbn-docdb#?? for more details. +Otherwise, it uses an identical window setup to ConfigH-v1. From 6df4fde57541e10b900ded8e9d128733a1246a0d Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Wed, 22 Feb 2023 17:54:06 +0000 Subject: [PATCH 0517/1437] Update The_SBND_flux_files.md --- sbndcode_wiki/The_SBND_flux_files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/The_SBND_flux_files.md b/sbndcode_wiki/The_SBND_flux_files.md index b213fc1e2..2fc4adeeb 100644 --- a/sbndcode_wiki/The_SBND_flux_files.md +++ b/sbndcode_wiki/The_SBND_flux_files.md @@ -199,6 +199,6 @@ as in the current design. Otherwise, it uses an identical window setup to Config ### ConfigJ-v1 Files were produced using BooNEtoGSimple. -The flux file now includes a variables called vtx that stores hadron time of flight and neutrino time of flight from production to flux window. +The flux file now includes a variables called vtx that stores kaon time of flight and neutrino time of flight from production to flux window. Check [sbndcode PR #??]() and sbn-docdb#?? for more details. Otherwise, it uses an identical window setup to ConfigH-v1. From 00d1e282f8583d316671201c3ff9babc177abaea Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Wed, 22 Feb 2023 12:42:12 -0600 Subject: [PATCH 0518/1437] Update Installation.md --- sbn_online_wiki/Installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/Installation.md b/sbn_online_wiki/Installation.md index 0fec64400..ecbf2ded8 100644 --- a/sbn_online_wiki/Installation.md +++ b/sbn_online_wiki/Installation.md @@ -80,7 +80,7 @@ mrb newDev -q $my_sbndaq_quals -v $my_sbndaq_version source localProducts_*/setup ```` -3. Pull down the necessary repositories using mrb like so: +3. Pull down the necessary repositories using mrb. Note, the dashes in the repository name need to be replaced with underscores, e.g. `sbndaq-artdaq-core` should be typed as `sbndaq_artdaq_core`: ```bash cd $MRB_SOURCE mrb g From 73ae00a7bfc071c0653adc99f4ef96452b877178 Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Wed, 22 Feb 2023 19:05:12 +0000 Subject: [PATCH 0519/1437] Update The_SBND_flux_files.md --- sbndcode_wiki/The_SBND_flux_files.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sbndcode_wiki/The_SBND_flux_files.md b/sbndcode_wiki/The_SBND_flux_files.md index 2fc4adeeb..35ffe35e3 100644 --- a/sbndcode_wiki/The_SBND_flux_files.md +++ b/sbndcode_wiki/The_SBND_flux_files.md @@ -199,6 +199,7 @@ as in the current design. Otherwise, it uses an identical window setup to Config ### ConfigJ-v1 Files were produced using BooNEtoGSimple. -The flux file now includes a variables called vtx that stores kaon time of flight and neutrino time of flight from production to flux window. -Check [sbndcode PR #??]() and sbn-docdb#?? for more details. +The flux file now includes a variable called vtx that stores kaon time of flight and neutrino time of flight from production to flux window. +Need to enable AddGenieVtxTime parameter to calculate neutrino time during generation stage. +Check [sbndcode PR #320]() and sbn-docdb#30136 for more details. Otherwise, it uses an identical window setup to ConfigH-v1. From 8cfda7e172854d9c11debd0e066d0c644e2fe572 Mon Sep 17 00:00:00 2001 From: VCLanNguyen <74775793+VCLanNguyen@users.noreply.github.com> Date: Wed, 22 Feb 2023 19:05:57 +0000 Subject: [PATCH 0520/1437] Update The_SBND_flux_files.md --- sbndcode_wiki/The_SBND_flux_files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/The_SBND_flux_files.md b/sbndcode_wiki/The_SBND_flux_files.md index 35ffe35e3..875e7569b 100644 --- a/sbndcode_wiki/The_SBND_flux_files.md +++ b/sbndcode_wiki/The_SBND_flux_files.md @@ -199,7 +199,7 @@ as in the current design. Otherwise, it uses an identical window setup to Config ### ConfigJ-v1 Files were produced using BooNEtoGSimple. -The flux file now includes a variable called vtx that stores kaon time of flight and neutrino time of flight from production to flux window. +The flux file now includes a variable called vtxt that stores kaon and neutrino time of flight from production to flux window. Need to enable AddGenieVtxTime parameter to calculate neutrino time during generation stage. Check [sbndcode PR #320]() and sbn-docdb#30136 for more details. Otherwise, it uses an identical window setup to ConfigH-v1. From 97d8dd9e473dcbcf275a32fc485e8b9dcb472341 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 22 Feb 2023 21:25:55 +0000 Subject: [PATCH 0521/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index e48d5f898..7ec7548ef 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_67_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_67_00) `v09_66_02` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_02) `v09_66_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_00) `v09_65_03` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_65_03) From af4b9820482288d9de847a3685d24cce994d9e3a Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Wed, 22 Feb 2023 21:43:02 +0000 Subject: [PATCH 0522/1437] Create sbncode_sbnana_v09_67_00.md --- .../Releases/sbncode_sbnana_v09_67_00.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_67_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_67_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_67_00.md new file mode 100644 index 000000000..55079b385 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_67_00.md @@ -0,0 +1,45 @@ +--- +layout: page +title: sbncode_sbnana_v09_67_00 +toc: true +--- + +sbncode_sbnana_v09_67_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +22 February 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_67_00) has been cut and distributed + +* sbncode (v09_67_00): + Using: + * larsoft v09_67_00 + * sbnobj v09_15_06 + * lardataobj v09_13_04 + + Includes: + * SBNSoftware/sbncode Luis bugfix #335 + + +* sbnana (v09_67_00): + + Using: + * sbnanaobj v09_20_03 + * ifdhc v2_6_15 + + + +Extra info +--------------------------------------------------- From dbaf48613c350b4c79e693b9aac5816b26dd3829 Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Wed, 22 Feb 2023 17:02:34 -0600 Subject: [PATCH 0523/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 7a1e00d91..2d73956ff 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -12,7 +12,7 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe # Working directory -- ssh into evb04 with `ssh sbnd@sbnd-evb04`, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. +- ssh into evb04 with `ssh sbnd-evb04`, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. - Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. From 464e65899ab0ba45d2fba7db115507cbc688153d Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Wed, 22 Feb 2023 17:03:23 -0600 Subject: [PATCH 0524/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 2d73956ff..32b654b16 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -23,6 +23,5 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe - Grafana for CRT monitor: - [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=28335&filename=Grafana%20Tutorial.pdf&version=1) include all details about the CRT monitor grafana page. - - -Leave a terminal open where you do ```ssh -KL localhost:10089:localhost:10080 sbnd@sbnd-gateway01.fnal.gov 'ssh -KL localhost:10080:localhost:10080 sbnd@sbnd-evb04.fnal.gov'``` + - Leave a terminal open where you do ```ssh -KL localhost:10089:localhost:10080 sbnd@sbnd-gateway01.fnal.gov 'ssh -KL localhost:10080:localhost:10080 sbnd@sbnd-evb04.fnal.gov'``` - Then go to localhost:10089/ in your web browser From bfe30a524b127b1bd3673c8f05a25eac2674a57a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 28 Feb 2023 18:01:39 -0600 Subject: [PATCH 0525/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index a76d712e3..33bc9dea9 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_67_00`. | Weekly release. | [Release Notes](ReleaseNotes096700.html) |`v09_66_02`. | Weekly release. | [Release Notes](ReleaseNotes096602.html) |`v09_66_00`. | Weekly release. | [Release Notes](ReleaseNotes096600.html) |`v09_64_01`. | Weekly release. | [Release Notes](ReleaseNotes096401.html) From cb53c9c898af555b7b750936b91d0e1ea9974073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 28 Feb 2023 18:01:57 -0600 Subject: [PATCH 0526/1437] Create ReleaseNotes096700.md --- sbndcode_wiki/Releases/ReleaseNotes096700.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096700.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096700.md b/sbndcode_wiki/Releases/ReleaseNotes096700.md new file mode 100644 index 000000000..789819226 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096700.md @@ -0,0 +1 @@ +a From 23e9f64a1b3def9dd80b8059cd89e6fa6a795fb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 28 Feb 2023 18:14:57 -0600 Subject: [PATCH 0527/1437] Update ReleaseNotes096700.md --- sbndcode_wiki/Releases/ReleaseNotes096700.md | 60 +++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/ReleaseNotes096700.md b/sbndcode_wiki/Releases/ReleaseNotes096700.md index 789819226..e30b9444f 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes096700.md +++ b/sbndcode_wiki/Releases/ReleaseNotes096700.md @@ -1 +1,59 @@ -a +--- +layout: page +title: ReleaseNotes096700 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.67.00 | 28 feb 2023 | [ReleaseNotes](ReleaseNotes096700.html) | +| --- | --- | --- | + + + +sbndcode v09_67_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_67_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_67_00/sbndcode-v09_67_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* SBNSoftware/sbndcode#318: + - Update fcls and MVA weights for improved hit finding + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_67_00 +* larsoft v09_67_00 +* sbnd_data v01_17_00 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-02-28 Fran Nicolas : Merge branch 'release/v09_67_00' +* 2023-02-28 Fran Nicolas : Update to larsoft v09_67_00 +* 2023-02-20 Francisco Javier Nicolás-Arnaldos : Merge pull request #318 from SBNSoftware/feature/etyley_hitFinding +* 2023-02-20 Francisco Javier Nicolás-Arnaldos : Merge branch 'develop' into feature/etyley_hitFinding +* 2023-02-13 Fran Nicolas : Merge tag 'v09_66_02' into develop +* 2023-02-10 Edward Tyley : Update sbnd_data version to pick up MVAs trained on updated hit finding +* 2023-02-10 Edward Tyley : Switch to SummedIntegral calorimetry methods +* 2023-02-10 Edward Tyley : Update to use morphological hit finder and enable refit + +sbndutil +--------------------------------------------------- + +* 2023-02-28 Fran Nicolas : Merge tag 'v09_67_00' into develop +* 2023-02-28 Fran Nicolas : Merge branch 'release/v09_67_00' +* 2023-02-28 Fran Nicolas : Update to larsoft v09_67_00 +* 2023-02-13 Fran Nicolas : Merge tag 'v09_66_02' into develop From e25a8c8c296cabf754e33bfe7ec805a3f7eb4ccb Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 2 Mar 2023 13:12:50 -0800 Subject: [PATCH 0528/1437] Added a "library" section ("CT") --- sbn/codingconv/CodingConventionsExplained.md | 30 +++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/sbn/codingconv/CodingConventionsExplained.md b/sbn/codingconv/CodingConventionsExplained.md index 9f847c008..697fcc314 100644 --- a/sbn/codingconv/CodingConventionsExplained.md +++ b/sbn/codingconv/CodingConventionsExplained.md @@ -544,7 +544,6 @@ wrong results. is **encouraged**. - ## [CF] Language features ################################################ C++ is now a relatively fast-paced standard, adding both language features @@ -1354,7 +1353,36 @@ consideration. interface to manage it with it staying sorted). +## [CT] Libraries and tools ############################################## +_Rationale_: libraries evolve fast and what was best practice may become obsolete or detrimental. +But it often also becomes an acquired pattern that is hard to break. +Here are some of the current patterns that should be replaced by newer ones. + +[`[CT.001]`](#CT001) **[++]** + ROOT itself is providing the classes underlying `geo::Point_t` and `geo::Vector_t` as a replacement of ROOT's `TVector3`. + Adopting the new classes is **encouraged**, although it requires some more careful thinking of what the vectors are (displacements or coordinates). + Some explanation of the reasons behind this recommendation and a migration guide are provided in [LArSoft wiki](https://larsoft.github.io/LArSoftWiki/Root_vectors). + +[`[CT.002]`](#CT002) **[--]** + The function `std::pow()` can compute arbitrary powers, but it's sub-optimal when used with integral exponents: + its implementation typically uses logarithms, which makes it both slower and less precise. + The most common place where it is used is as square function, often to compute 2D or 3D distances: + ```cpp + double const d = std::sqrt(std::pow(x - R.X(), 2) + std::pow(y - R.Y(), 2) + std::pow(z - R.Z(), 2)); + ``` + The **encouraged** practice is: + * for simple variables, just write the product (e.g. `x*x` or even `x*x*x`) + * for more complicate expressions, _cetlib_ provides `cet::square()`, `cet::cube()` and `std::pow()` (`#include "cetlib/pow.h"`); e.g. + `cet::square(x - R.X())`. + * for distances, if the algorithm really requires them, use `std::hypot(x - R.X(), y - R.Y(), z - R.Z())` (available also in the 2D version) + * if looking for the shortest distance, you can stick to the square of the distance, with again `cetlib/pow.h` to the rescue: + ```cpp + double const d2 = std::sum_of_squares(x - R.X(), y - R.Y(), z - R.Z()); + ``` + Avaialble also a 2D version, and a `cet::diff_of_squares()`. + + ## [CQ] Quantity types and their units ################################### _Rationale_: clarity and predictability are essential when interpreting data From a311481654ecd65317fcc07ae863553133285336 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Thu, 2 Mar 2023 13:13:22 -0800 Subject: [PATCH 0529/1437] Update CodingConventionsList.md --- sbn/codingconv/CodingConventionsList.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sbn/codingconv/CodingConventionsList.md b/sbn/codingconv/CodingConventionsList.md index 96db25e21..b85197156 100644 --- a/sbn/codingconv/CodingConventionsList.md +++ b/sbn/codingconv/CodingConventionsList.md @@ -575,6 +575,19 @@ consideration. (i.e. constraints on the data members) to be preserved, `struct` otherwise. +## [CT] Libraries and tools ############################################## + +_Rationale_: libraries evolve fast and what was best practice may become obsolete or detrimental. +But it often also becomes an acquired pattern that is hard to break. + +[`[CT.001]`](#CT001) **[++]** + Use `geo::Point_t` and `geo::Vector_t` in place of ROOT's `TVector3` for locations and displacements. + +[`[CT.002]`](#CT002) **[--]** + Avoid using `std::pow()` with integral exponents; use `std::hypot()` or _cetlib_ `cet::pow()` or similar as appropriate. + Also avoid taking the square root for distance when not essential. + + ## [CQ] Quantity types and their units ################################### _Rationale_: clarity and predictability are essential when interpreting data From 0ec08d8860f46c4d1e38555035fb1a7efc28d449 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 3 Mar 2023 17:48:29 +0000 Subject: [PATCH 0530/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 7ec7548ef..c85a5a176 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_68_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00) `v09_67_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_67_00) `v09_66_02` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_02) `v09_66_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_00) From b2528deee4e2e701e9b180298e05e9a8c1c8ab33 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 3 Mar 2023 17:50:51 +0000 Subject: [PATCH 0531/1437] Create sbncode_v09_68_00.md --- .../Releases/sbncode_v09_68_00.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00.md new file mode 100644 index 000000000..82a03e892 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00.md @@ -0,0 +1,35 @@ +--- +layout: page +title: sbncode_v09_68_00 +toc: true +--- + +sbncode_v09_68_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +03 March 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new weekly release sbncode (v09_68_00) has been cut and distributed + +* sbncode (v09_68_00): + + Using: + * larsoft v09_68_00 + * sbnobj v09_15_07 + * lardataobj v09_13_05 + + +Extra info +--------------------------------------------------- From fb16db31e748444581d2e0bb2c6d0efda8ba7cbc Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 14 Mar 2023 12:33:20 +0000 Subject: [PATCH 0532/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index c85a5a176..1a2e18692 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_69_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00) `v09_68_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00) `v09_67_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_67_00) `v09_66_02` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_66_02) From 6ae02501629fabdd91437b2daf2f8bafae604135 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 14 Mar 2023 13:34:24 +0000 Subject: [PATCH 0533/1437] Create sbncode_v09_69_00.md --- .../Releases/sbncode_v09_69_00.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00.md new file mode 100644 index 000000000..0150cd5f3 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00.md @@ -0,0 +1,33 @@ +--- +layout: page +title: sbncode_v09_69_00 +toc: true +--- + +sbncode_v09_69_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +14 March 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new weekly release sbncode (v09_69_00) has been cut and distributed + +* sbncode (v09_69_00): + + Using: + * + + +Extra info +--------------------------------------------------- From 2d7a1910824b3c395aa77f884463901322d0980c Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 14 Mar 2023 16:33:28 +0000 Subject: [PATCH 0534/1437] Update sbncode_v09_69_00.md --- .../Releases/sbncode_v09_69_00.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00.md index 0150cd5f3..8e9750453 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00.md @@ -26,8 +26,20 @@ A new weekly release sbncode (v09_69_00) has been cut and distributed * sbncode (v09_69_00): Using: - * + * larsoft v09_69_00 + * sbnobj v09_15_08 + * sbnanaobj v09_20_04 + * nusystematics v01_02_07 + * sbndaq_artdaq_core v1_06_00of0 + Including: + * SBNSoftware/sbncode Fill opflash firsttime #337 + * SBNSoftware/sbncode Update the namespace of the SemiAnalyticalModel #338 + * SBNSoftware/sbncode Save truth information in CaloPoints and add a few var #330 + * SBNSoftware/sbnanaobj Refactor SRCaloPoint into its own file, add more info and add truth info #90 + * SBNSoftware/sbnobj Added sbn::ExtraTriggerInfo::triggerFromBeamGate()#76 + * SBNSoftware/sbndaq-artdaq-core Feature/rh bottom crt #80 + Extra info --------------------------------------------------- From e40fcd4f92650b68763434a2307500555e160f85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 16 Mar 2023 17:36:55 -0500 Subject: [PATCH 0535/1437] Create ReleaseNotes096900.md --- sbndcode_wiki/Releases/ReleaseNotes096900.md | 66 ++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096900.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096900.md b/sbndcode_wiki/Releases/ReleaseNotes096900.md new file mode 100644 index 000000000..7b2d8f831 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096900.md @@ -0,0 +1,66 @@ +--- +layout: page +title: ReleaseNotes096900 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.69.00 | 16 mar 2023 | [ReleaseNotes](ReleaseNotes096900.html) | +| --- | --- | --- | + + + +sbndcode v09_69_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_69_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_69_00/sbndcode-v09_69_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +- SBNSoftware/sbndcode#321: + - Update the namespace of the SemiAnalyticalMode1 +- SBNSoftware/sbndcode#320: + - Update default flux from config H to config J. + - Flux config J contains a new variable vtxt that stores kaon and neutrino time of flight from production to flux window. + + +Bug fixes +--------------------------------------------------- +- SBNSoftware/sbndcode#323: + - Solves issue SBNSoftware/sbndcode#322 + +Updated dependencies +--------------------------------------------------- +* sbncode v09_69_00 +* larsoft v09_69_00 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-03-16 Fran Nicolas : Merge branch 'release/v09_69_00' +* 2023-03-16 Fran Nicolas : Update to larsoft v09_69_00 +* 2023-03-16 Francisco Javier Nicolás-Arnaldos : Merge pull request #320 from SBNSoftware/feature/lnguyen-flux-update-wvtxt +* 2023-03-16 Francisco Javier Nicolás-Arnaldos : Merge pull request #321 from ikatza/feature/icaza_PhPropagation +* 2023-03-16 Francisco Javier Nicolás-Arnaldos : Merge pull request #323 from SBNSoftware/feature/fnicolas_issue322 +* 2023-03-09 VCLanNguyen : Update genie_sbnd.fcl +* 2023-03-07 Fran Nicolas : properly reset static vectors +* 2023-02-28 Fran Nicolas : Merge tag 'v09_67_00' into develop +* 2023-02-22 Vu Chi Lan Nguyen : Update to flux config H and enable neutrino time of flight in genie +* 2023-02-16 Iker de Icaza Astiz : Update the namespace of the SemiAnalyticalModel + +sbndutil +--------------------------------------------------- + +* 2023-03-16 Fran Nicolas : Merge tag 'v09_69_00' into develop +* 2023-03-16 Fran Nicolas : Merge branch 'release/v09_69_00' +* 2023-03-16 Fran Nicolas : Update to larsoft v09_69_00 +* 2023-02-28 Fran Nicolas : Merge tag 'v09_67_00' into develop From dff3c15c646beca7c6baf81e15626f9e2b1bd731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 16 Mar 2023 17:37:18 -0500 Subject: [PATCH 0536/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 33bc9dea9..d91a49271 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -21,7 +21,8 @@ List of `sbndcode` releases These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes - |-----------------------------|---------------------------------------------|-------------------------------------------- + |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_69_00`. | Weekly release. | [Release Notes](ReleaseNotes096900.html) |`v09_67_00`. | Weekly release. | [Release Notes](ReleaseNotes096700.html) |`v09_66_02`. | Weekly release. | [Release Notes](ReleaseNotes096602.html) |`v09_66_00`. | Weekly release. | [Release Notes](ReleaseNotes096600.html) From ceab4fff34e32fd1ea9d42116a73c419df602d01 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 20 Mar 2023 13:54:31 +0000 Subject: [PATCH 0537/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 1a2e18692..d66e292c2 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_69_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01) `v09_69_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00) `v09_68_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00) `v09_67_00` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_67_00) From 36097180bf69322375ef9b47bfff136e1e7b803e Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 20 Mar 2023 13:57:43 +0000 Subject: [PATCH 0538/1437] Create sbncode_sbnana_v09_69_01.md --- .../Releases/sbncode_sbnana_v09_69_01.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01.md new file mode 100644 index 000000000..acbd314d3 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01.md @@ -0,0 +1,43 @@ +--- +layout: page +title: sbncode_sbnana_v09_69_01 +toc: true +--- + +sbncode_sbnana_v09_69_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +20 March 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A weekly release of sbncode and sbnana (v09_69_01) has been cut and distributed + +* sbncode (v09_69_01): + + Using: + * larsoft v09_69_01 + * nusystematics v01_02_08 + * sbnanaobj v09_20_05 + * srproxy v00.39 + +* sbnana (v09_69_01): + + Using: + * ifdhc v2_6_18 + * sbnanaobj v09_20_05 + + + +Extra info +--------------------------------------------------- From d8c85d61ebc99945ae2d6cd2c6dcba5d6c0888a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 20 Mar 2023 16:18:53 -0500 Subject: [PATCH 0539/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index d91a49271..0d961c245 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_69_01`. | Weekly release. | [Release Notes](ReleaseNotes096901.html) |`v09_69_00`. | Weekly release. | [Release Notes](ReleaseNotes096900.html) |`v09_67_00`. | Weekly release. | [Release Notes](ReleaseNotes096700.html) |`v09_66_02`. | Weekly release. | [Release Notes](ReleaseNotes096602.html) From 0cf6a368f849031861598cd9ed4f559559e73f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Mon, 20 Mar 2023 16:20:25 -0500 Subject: [PATCH 0540/1437] Create ReleaseNotes096901.md --- sbndcode_wiki/Releases/ReleaseNotes096901.md | 55 ++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes096901.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes096901.md b/sbndcode_wiki/Releases/ReleaseNotes096901.md new file mode 100644 index 000000000..e1e26291e --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes096901.md @@ -0,0 +1,55 @@ +--- +layout: page +title: ReleaseNotes096901 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.69.01 | 20 mar 2023 | [ReleaseNotes](ReleaseNotes096901.html) | +| --- | --- | --- | + + + +sbndcode v09_69_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_69_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_69_01/sbndcode-v09_69_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_69_01 +* larsoft v09_69_01 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-03-20 Fran Nicolas : Merge branch 'release/v09_69_01' +* 2023-03-20 Fran Nicolas : Update to larsoft v09_69_01 +* 2023-03-20 Francisco Javier Nicolás-Arnaldos : Merge pull request #326 from SBNSoftware/revert-325-feature/lnguyen-enable-genie-ToF +* 2023-03-20 Francisco Javier Nicolás-Arnaldos : Revert "Enable neutrino time of flight in genie fcl" +* 2023-03-20 Steven Gardiner : Merge pull request #325 from SBNSoftware/feature/lnguyen-enable-genie-ToF +* 2023-03-17 Vu Chi Lan Nguyen : enable neutrino time of flight in genie +* 2023-03-16 Fran Nicolas : Merge tag 'v09_69_00' into develop + +sbndutil +--------------------------------------------------- + +* 2023-03-20 Fran Nicolas : Merge tag 'v09_69_01' into develop +* 2023-03-20 Fran Nicolas : Merge branch 'release/v09_69_01' +* 2023-03-20 Fran Nicolas : Update to larsoft v09_69_01 +* 2023-03-16 Fran Nicolas : Merge tag 'v09_69_00' into develop From d1905f15f25be26504c84c88b3ef265769bbdcce Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 24 Mar 2023 14:55:31 +0000 Subject: [PATCH 0541/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index d66e292c2..67715e1ca 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +'v09_69_01_01` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01) `v09_69_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01) `v09_69_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00) `v09_68_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00) From 34f4a9c953a9c2db826cd0bf73087ae3430cef2d Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Fri, 24 Mar 2023 15:00:16 +0000 Subject: [PATCH 0542/1437] Create sbncode_v09_69_01_01.md --- .../Releases/sbncode_v09_69_01_01.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01.md new file mode 100644 index 000000000..8438053c5 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01.md @@ -0,0 +1,38 @@ +--- +layout: page +title: sbncode_v09_69_01_01 +toc: true +--- + +sbncode_v09_69_01_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +24 March 2023 + +Purpose +--------------------------------------------------- +* Test release + +New features +--------------------------------------------------- +A new test release sbncode (v09_69_01_01) has been cut and distributed + +* sbncode (v09_69_01_01): + + Using: + * larsoft v09_69_01_01 + * genie_xsec v3_04_00 + * nusystematics v01_02_09 + + + +Extra info +--------------------------------------------------- +This is a test release for the new genie v3_04_04, using genie_xsec (v3_04_00, AR2320i00000:e1000:k250). Therefore, this has not been mereged to develop. +Please, if you find any issues get in touch to the release management team. From 91e99e5b9c835e56d7e5cefda8511be6f7cd2e67 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 28 Mar 2023 12:54:59 +0000 Subject: [PATCH 0543/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 67715e1ca..202f62cbf 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,7 +11,8 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- -'v09_69_01_01` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01) +`v09_71_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01) +`v09_69_01_01` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01) `v09_69_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01) `v09_69_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00) `v09_68_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_68_00) From 5fbb14c89fc6340da3506e004065e82430dc0836 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 28 Mar 2023 12:55:13 +0000 Subject: [PATCH 0544/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 202f62cbf..faa46f28b 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,7 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- -`v09_71_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01) +`v09_71_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00) `v09_69_01_01` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01) `v09_69_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01) `v09_69_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_00) From 7368724a51f9acdc622b51c598a5de481847ddd9 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 28 Mar 2023 13:13:08 +0000 Subject: [PATCH 0545/1437] Create sbncode_v09_71_00.md --- .../Releases/sbncode_v09_71_00.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00.md new file mode 100644 index 000000000..8fd3b9829 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00.md @@ -0,0 +1,41 @@ +--- +layout: page +title: sbncode_v09_71_00 +toc: true +--- + +sbncode_v09_71_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +28 March 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new test release sbncode (v09_71_00) has been cut and distributed + +* sbncode (v09_69_01_01): + + Using: + * larsoft v09_71_00 + * genie_xsec v3_04_00 + * nusystematics v01_02_09 + * sbnobj v09_16_00 + * lardataobj v09_14_00 + + Includes: + * SBNSoftware/sbncode Update Supera for MCParticleLite fix #342 + * SBNSoftware/sbncode Create MergeSimSourcesSBN to also merge sim::MCParticleLite streams #341 + +Extra info +--------------------------------------------------- +This release includes the new genie v3_04_04, using genie_xsec (v3_04_00, AR2320i00000:e1000:k250)and other larsoft PRs as requested for ICARUS production. From 9439e9b21762402afb31b3aff25b4d65c1a0284f Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Tue, 28 Mar 2023 16:00:43 -0500 Subject: [PATCH 0546/1437] Update development.md --- sbn_online_wiki/development/development.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbn_online_wiki/development/development.md b/sbn_online_wiki/development/development.md index d4d8b6d8a..fe622ca3c 100644 --- a/sbn_online_wiki/development/development.md +++ b/sbn_online_wiki/development/development.md @@ -29,6 +29,8 @@ Observations: ## Loss of PMT boardreaders - Seems to occur at higher trigger rates (e.g. out of spill), e.g. 5_5 configuration crashes each several hours + - New code waiting for validation (Spring 2023) + - New CAEN libraries waiting for validation (Spring 2023) ## Shared memory problems resulting in OM interruptions with run crashes - less issues recently @@ -52,7 +54,8 @@ Observations: ## Managing the logfiles - during the summer/fall of 2022 the size of the logfiles was greatly reduced - - we decided the only file we really need to preserve is /daq/log/DAQInterface_partition1.log . The SLAM group is helping us to arrange it + - we decided the only file we really need to preserve is /daq/log/DAQInterface_partition1.log . The SLAM group is helping us to arrange it [done early 2023] + - still needed: increasing debug level of some of the trigger messages ## Automatic e-mail/slack notifications in case of DAQ issues requireing prompt attention - https://github.com/art-daq/artdaq_mfextensions/blob/develop/mfextensions/Destinations/SMTP_mfPlugin.cc From d932c1c0126105937cf718de6c0db52143f986e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Wed, 29 Mar 2023 17:37:51 -0500 Subject: [PATCH 0547/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index 0d961c245..f013f115a 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_71_00`. | Weekly release. | [Release Notes](ReleaseNotes097100.html) |`v09_69_01`. | Weekly release. | [Release Notes](ReleaseNotes096901.html) |`v09_69_00`. | Weekly release. | [Release Notes](ReleaseNotes096900.html) |`v09_67_00`. | Weekly release. | [Release Notes](ReleaseNotes096700.html) From c22eeaef5c777a5226a38fd5d941bdd2d8c59e82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Wed, 29 Mar 2023 17:43:14 -0500 Subject: [PATCH 0548/1437] Create ReleaseNotes097100.md --- sbndcode_wiki/Releases/ReleaseNotes097100.md | 70 ++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes097100.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes097100.md b/sbndcode_wiki/Releases/ReleaseNotes097100.md new file mode 100644 index 000000000..794bc0750 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes097100.md @@ -0,0 +1,70 @@ +--- +layout: page +title: ReleaseNotes097100 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.71.00 | 29 mar 2023 | [ReleaseNotes](ReleaseNotes097100.html) | +| --- | --- | --- | + + + +sbndcode v09_71_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_71_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_71_00/sbndcode-v09_71_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- +* SBNSoftware/sbndcode#327: enables neutrino time of flight. +* SBNSoftware/sbndcode#319: updates PDS det sim + * Added a new tool to mimic waveform with higher sampling time + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_71_00 +* larsoft v09_71_00 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-03-29 Fran Nicolas : Merge branch 'release/v09_71_00' +* 2023-03-29 Fran Nicolas : Version v09_71_00 +* 2023-03-29 Francisco Javier Nicolás-Arnaldos : Merge pull request #319 from SBNSoftware/feature/rodrigoa_detsim_update +* 2023-03-29 Francisco Javier Nicolás-Arnaldos : Merge branch 'develop' into feature/rodrigoa_detsim_update +* 2023-03-29 Francisco Javier Nicolás-Arnaldos : Merge pull request #327 from SBNSoftware/feature/lnguyen-enable-genie-ToF-v2 +* 2023-03-29 Rodrigo Alvarez Garrote : added mesages to logdebug, switched back to sbnd_data file +* 2023-03-29 Rodrigo Alvarez Garrote : different names for each instance of the tool (1 for pmts and another for xarapucas) +* 2023-03-29 Rodrigo Alvarez Garrote : fhicl configurations now properly set +* 2023-03-28 Rodrigo Alvarez Garrote : testing cubic spline and linear interpolation +* 2023-03-20 Fran Nicolas : Merge tag 'v09_69_01' into develop +* 2023-03-20 Vu Chi Lan Nguyen : enable neutrino time of flight for PR#320 +* 2023-02-28 Rodrigo Alvarez Garrote : removed extra point to the first wvf, prevents 0s at the end of pmt signals +* 2023-02-16 Rodrigo Alvarez Garrote : updated sbnd_data version +* 2023-02-16 Rodrigo Alvarez Garrote : Updated PMT simulation with HD wvfs +* 2023-02-15 Rodrigo Alvarez Garrote : pnfs is dead +* 2023-02-15 Rodrigo Alvarez Garrote : X-ARAPUCAS updated detsim +* 2023-01-17 Rodrigo Alvarez Garrote : added xarapuca flc file configs +* 2023-01-17 Rodrigo Alvarez Garrote : added detsim update with HD waveforms +* 2022-12-20 Rodrigo Alvarez Garrote : XARAPUCAs detsim update + +sbndutil +--------------------------------------------------- + +* 2023-03-29 Fran Nicolas : Merge tag 'v09_71_00' into develop +* 2023-03-29 Fran Nicolas : Merge branch 'release/v09_71_00' +* 2023-03-29 Fran Nicolas : Version v09_71_00 +* 2023-03-20 Fran Nicolas : Merge tag 'v09_69_01' into develop From b60817f526dbbe304ffd74c61736e1fd11b53af0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Thu, 30 Mar 2023 10:00:51 -0500 Subject: [PATCH 0549/1437] Update ReleaseNotes097100.md --- sbndcode_wiki/Releases/ReleaseNotes097100.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/ReleaseNotes097100.md b/sbndcode_wiki/Releases/ReleaseNotes097100.md index 794bc0750..976b2f22c 100644 --- a/sbndcode_wiki/Releases/ReleaseNotes097100.md +++ b/sbndcode_wiki/Releases/ReleaseNotes097100.md @@ -34,6 +34,7 @@ Updated dependencies --------------------------------------------------- * sbncode v09_71_00 * larsoft v09_71_00 +* sbnd_data v1_18_00 Change List ========================================== From b0f6dbd872873f4af572871d6f33d2217230aff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Wed, 5 Apr 2023 11:01:26 -0500 Subject: [PATCH 0550/1437] Update Small_data_files_for_SBND_processing_sbnd_data.md --- sbndcode_wiki/Small_data_files_for_SBND_processing_sbnd_data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/Small_data_files_for_SBND_processing_sbnd_data.md b/sbndcode_wiki/Small_data_files_for_SBND_processing_sbnd_data.md index 91f73caa9..e5e7071b1 100644 --- a/sbndcode_wiki/Small_data_files_for_SBND_processing_sbnd_data.md +++ b/sbndcode_wiki/Small_data_files_for_SBND_processing_sbnd_data.md @@ -226,7 +226,7 @@ For CVMFS, the [generic SBND CVMFS update instructions](Write_files_to_CVMFS.html) work well. An update of `sbnd_data` (that typically comes with a `sbndcode` update) deserves a new major version number for tag (CVMFS tags grow faster than -the code in this scheme). +the code in this scheme). For the deployment on CVMFS, contact the SBND release manager. The deployment on `/grid` is still TODO. From 3c0cfe4e004bea4927b631e3c2de0ce569ac15d3 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 11 Apr 2023 15:28:03 +0000 Subject: [PATCH 0551/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index faa46f28b..5a6c37db7 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_72_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00) `v09_71_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00) `v09_69_01_01` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01) `v09_69_01` | 'sbncode/sbnana' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_sbnana_v09_69_01) From 9f04b9c4c02108cc12f111a854b6d25d944a8bca Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 11 Apr 2023 15:32:55 +0000 Subject: [PATCH 0552/1437] Create sbncode_v09_72_00.md --- .../Releases/sbncode_v09_72_00.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00.md new file mode 100644 index 000000000..445ff40dd --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00.md @@ -0,0 +1,40 @@ +--- +layout: page +title: sbncode_v09_72_00 +toc: true +--- + +sbncode_v09_72_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +11 April 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new weekly release sbncode (v09_72_00) has been cut and distributed + +* sbncode (v09_72_00): + + Using: + * larsoft v09_72_00 + * sbnanaobj v09_20_06 + * nusystematics v01_02_10 + + + Includes: + * SBNSoftware/sbncode Update Supera for MCTruth #344 + * SBNSoftware/sbncode Make FileCatalogMetadataSBN and MetadataSBN services thread-safe. #343 + * SBNSoftware/sbnanaobj Update to default values for SRShower from -5.0 to nan #93 + +Extra info +--------------------------------------------------- From 64f5298ff8e1bad569258338145651dbf637c46a Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 11 Apr 2023 15:33:35 +0000 Subject: [PATCH 0553/1437] Update sbncode_v09_71_00.md --- .../ReleaseManagement/Releases/sbncode_v09_71_00.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00.md index 8fd3b9829..abd8eed3e 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00.md @@ -21,9 +21,9 @@ Purpose New features --------------------------------------------------- -A new test release sbncode (v09_71_00) has been cut and distributed +A new weekly release sbncode (v09_71_00) has been cut and distributed -* sbncode (v09_69_01_01): +* sbncode (v09_71_00): Using: * larsoft v09_71_00 From 4bbf3cda86343c05f971fd97406d6919311640a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 11 Apr 2023 17:06:12 -0500 Subject: [PATCH 0554/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index f013f115a..bf6df549c 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_72_00`. | Weekly release. | [Release Notes](ReleaseNotes097200.html) |`v09_71_00`. | Weekly release. | [Release Notes](ReleaseNotes097100.html) |`v09_69_01`. | Weekly release. | [Release Notes](ReleaseNotes096901.html) |`v09_69_00`. | Weekly release. | [Release Notes](ReleaseNotes096900.html) From c7959549235f0adbb9fe832b6162ab01638a5da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 11 Apr 2023 17:09:37 -0500 Subject: [PATCH 0555/1437] Create ReleaseNotes097200.md --- sbndcode_wiki/Releases/ReleaseNotes097200.md | 55 ++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes097200.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes097200.md b/sbndcode_wiki/Releases/ReleaseNotes097200.md new file mode 100644 index 000000000..323a149d5 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes097200.md @@ -0,0 +1,55 @@ +--- +layout: page +title: ReleaseNotes097200 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.72.00 | 11 abr 2023 | [ReleaseNotes](ReleaseNotes097200.html) | +| --- | --- | --- | + + + +sbndcode v09_72_00 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_72_00](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_72_00/sbndcode-v09_72_00.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- +* sbndcode SBNSoftware/sbndcode#329: + * Solves issue in OpDetSim when using SimPhotons (issue SBNSoftware/sbndcode#328) + +Updated dependencies +--------------------------------------------------- +* sbncode v09_72_00 +* larsoft v09_72_00 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-04-11 Fran Nicolas : Merge branch 'release/v09_72_00' +* 2023-04-11 Fran Nicolas : Update to larsoft v09_72_00 +* 2023-03-30 Francisco Javier Nicolás-Arnaldos : Merge pull request #329 from SBNSoftware/feature/fnicolas_issue328 +* 2023-03-29 Fran Nicolas : Merge tag 'v09_71_00' into develop +* 2023-03-28 Fran Nicolas : Properly fill SimPhoton handle + +sbndutil +--------------------------------------------------- + +* 2023-04-11 Fran Nicolas : Merge tag 'v09_72_00' into develop +* 2023-04-11 Fran Nicolas : Merge branch 'release/v09_72_00' +* 2023-04-11 Fran Nicolas : Update to larsoft v09_72_00 +* 2023-03-29 Fran Nicolas : Merge tag 'v09_71_00' into develop From f50d74c2ba25ae70c5954755e866f137b4069463 Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Thu, 13 Apr 2023 01:13:41 +0100 Subject: [PATCH 0556/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 32b654b16..871c30179 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -14,7 +14,7 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe # Working directory - ssh into evb04 with `ssh sbnd-evb04`, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. -- Raw data is stored in `/daq/scratch/crtbeamoffdata/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. +- Raw data is stored in `/daq/scratch/crt_Aframe/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. # Side notes for data taking - Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. From 4a51693862c5ba89528c307905a52d6f45f77902 Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Thu, 13 Apr 2023 01:19:00 +0100 Subject: [PATCH 0557/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index 871c30179..d7aa0ab1f 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -12,9 +12,9 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe # Working directory -- ssh into evb04 with `ssh sbnd-evb04`, then run the `crtnoise_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. +- ssh into evb04 with `ssh sbnd-evb04`, then run the `ana_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. -- Raw data is stored in `/daq/scratch/crt_Aframe/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. +- Raw data is stored in `/daq/scratch/crt_Aframe_data/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. # Side notes for data taking - Remember to turn on the voltage for the modules before taking the run of data. [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=24720&filename=SBND_CRT_Power_Supplies_Operation.pdf&version=1) explain how to turn on the voltage. The current setup for A-frame is channel 9. From 6f1f2918ff60eebd7640fb7b2eadbd343d0db585 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 17 Apr 2023 14:56:13 +0000 Subject: [PATCH 0558/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index 5a6c37db7..e7c26f623 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_72_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_01) `v09_72_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00) `v09_71_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00) `v09_69_01_01` | 'sbncode' test release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_69_01_01) From 3e2be99df3a39fe9f12457e669e0383479c0333d Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Mon, 17 Apr 2023 14:57:56 +0000 Subject: [PATCH 0559/1437] Create sbncode_v09_72_01.md --- .../Releases/sbncode_v09_72_01.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_01.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_01.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_01.md new file mode 100644 index 000000000..d5c69d456 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_01.md @@ -0,0 +1,35 @@ +--- +layout: page +title: sbncode_v09_72_01 +toc: true +--- + +sbncode_v09_72_01 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +17 April 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new weekly release sbncode (v09_72_01) has been cut and distributed + +* sbncode (v09_72_01): + + Using: + * larsoft v09_72_01 + + Includes: + * SBNSoftware/sbncode Added setup stage where normalization tools are used. #346 + +Extra info +--------------------------------------------------- From d8be0680f944db768143741d24dd1338172a1b88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:50:40 -0500 Subject: [PATCH 0560/1437] Update List_of_SBND_code_releases.md --- sbndcode_wiki/Releases/List_of_SBND_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md index bf6df549c..d7eb63b77 100644 --- a/sbndcode_wiki/Releases/List_of_SBND_code_releases.md +++ b/sbndcode_wiki/Releases/List_of_SBND_code_releases.md @@ -22,6 +22,7 @@ These are the `sbndcode` releases tagged until now: | Version | Notes | Detailed Notes |-----------------------------|---------------------------------------------|-------------------------------------------- + |`v09_72_01`. | Weekly release. | [Release Notes](ReleaseNotes097201.html) |`v09_72_00`. | Weekly release. | [Release Notes](ReleaseNotes097200.html) |`v09_71_00`. | Weekly release. | [Release Notes](ReleaseNotes097100.html) |`v09_69_01`. | Weekly release. | [Release Notes](ReleaseNotes096901.html) From f994b8a29e06b1cc2c4033d9125f90b2ef467b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Javier=20Nicol=C3=A1s-Arnaldos?= <66068208+fjnicolas@users.noreply.github.com> Date: Tue, 18 Apr 2023 10:51:38 -0500 Subject: [PATCH 0561/1437] Create ReleaseNotes097201.md --- sbndcode_wiki/Releases/ReleaseNotes097201.md | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sbndcode_wiki/Releases/ReleaseNotes097201.md diff --git a/sbndcode_wiki/Releases/ReleaseNotes097201.md b/sbndcode_wiki/Releases/ReleaseNotes097201.md new file mode 100644 index 000000000..407a9a8f3 --- /dev/null +++ b/sbndcode_wiki/Releases/ReleaseNotes097201.md @@ -0,0 +1,51 @@ +--- +layout: page +title: ReleaseNotes097201 +toc: true +--- + +----------------------------------------------------------------------------- +| v09.72.01 | 18 abr 2023 | [ReleaseNotes](ReleaseNotes097201.html) | +| --- | --- | --- | + + + +sbndcode v09_72_01 Release Notes +======================================================================================= + +[List of sbndcode releases](List_of_SBND_code_releases.html) + +Download instructions for [sbndcode v09_72_01](http://scisoft.fnal.gov/scisoft/bundles/sbnd/v09_72_01/sbndcode-v09_72_01.html) + +Purpose +--------------------------------------------------- +Weekly release + +New features +--------------------------------------------------- + +Bug fixes +--------------------------------------------------- + +Updated dependencies +--------------------------------------------------- +* sbncode v09_72_01 +* larsoft v09_72_01 + +Change List +========================================== + +sbndcode sbndcode +--------------------------------------------------- + +* 2023-04-18 Fran Nicolas : Merge branch 'release/v09_72_01' +* 2023-04-18 Fran Nicolas : Update to larsoft v09_72_01 +* 2023-04-11 Fran Nicolas : Merge tag 'v09_72_00' into develop + +sbndutil +--------------------------------------------------- + +* 2023-04-18 Fran Nicolas : Merge tag 'v09_72_01' into develop +* 2023-04-18 Fran Nicolas : Merge branch 'release/v09_72_01' +* 2023-04-18 Fran Nicolas : Update to larsoft v09_72_01 +* 2023-04-11 Fran Nicolas : Merge tag 'v09_72_00' into develop From 498e4ecb525e9777aeb96b8e6cb4aa897598a808 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Tue, 18 Apr 2023 09:37:56 -0700 Subject: [PATCH 0562/1437] Extended CF.112 to recommend copy of small variables --- sbn/codingconv/CodingConventionsExplained.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sbn/codingconv/CodingConventionsExplained.md b/sbn/codingconv/CodingConventionsExplained.md index 697fcc314..9e63c5f05 100644 --- a/sbn/codingconv/CodingConventionsExplained.md +++ b/sbn/codingconv/CodingConventionsExplained.md @@ -1042,6 +1042,10 @@ There are well known patterns that prevent unnecessary copies. will be always copied when calling that method, while in the good one it will not be copied by the method call (the method implementation may still copy it though). + + Conversely, fundamental data types (e.g. `int`, `double`) and small data structures + (e.g. `std::complex`) should always be passed by value, as the reference + overhead is larger than the copy one. [`[CF.113]`](#CF113) **[+]** The **suggested** pattern for initialization of large data member from From e769a765d98ad2fdc1d07958c3119aed37657337 Mon Sep 17 00:00:00 2001 From: Gianluca Petrillo Date: Tue, 18 Apr 2023 09:39:56 -0700 Subject: [PATCH 0563/1437] Updated CF.112 --- sbn/codingconv/CodingConventionsList.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbn/codingconv/CodingConventionsList.md b/sbn/codingconv/CodingConventionsList.md index b85197156..df5503fb9 100644 --- a/sbn/codingconv/CodingConventionsList.md +++ b/sbn/codingconv/CodingConventionsList.md @@ -510,6 +510,8 @@ There are well known patterns that prevent unnecessary copies. [`[CF.112]`](#CF112) **[+++]** Declare function arguments of large non-trivial types as constant references. + Conversely, arguments of fundamental data types and small trivial data types should always be passed by value. + [`[CF.113]`](#CF113) **[+]** Consider, as pattern for initialization of large data members from From 55b2bc412391d5b38c726430c14f7a964c86ebca Mon Sep 17 00:00:00 2001 From: aaduszki <55505042+aaduszki@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:16:45 -0500 Subject: [PATCH 0564/1437] Update DAQLogfiles.md --- sbn_online_wiki/DAQLogfiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbn_online_wiki/DAQLogfiles.md b/sbn_online_wiki/DAQLogfiles.md index 0dcd2785e..089a3a6c7 100644 --- a/sbn_online_wiki/DAQLogfiles.md +++ b/sbn_online_wiki/DAQLogfiles.md @@ -35,7 +35,7 @@ PMT logs include FragmentWatcher messages. ### DAQInterface A single file with logs from DAQInterface is in: `/daq/log/DAQInterface_partition1.log`. This is a file to check if a run crashes before starts. It also includes timestamps of run start and stop. -The file is backed up. In order to access the backup, one should file a ticket. In case of emergency one could request SLAM be paged. +The file is backed up daily. In order to access the backup, one should file a ticket. In case of emergency one could request SLAM be paged. ### File Transfer Service From 549127a5d8173546bac6d5c951e5c868324f83e3 Mon Sep 17 00:00:00 2001 From: Li Jiaoyang <72443740+Li-Jiaoyang97@users.noreply.github.com> Date: Sun, 30 Apr 2023 17:04:56 -0500 Subject: [PATCH 0565/1437] Update Aframe.md --- sbndcode_wiki/CRT/Aframe.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbndcode_wiki/CRT/Aframe.md b/sbndcode_wiki/CRT/Aframe.md index d7aa0ab1f..5b550ccb4 100644 --- a/sbndcode_wiki/CRT/Aframe.md +++ b/sbndcode_wiki/CRT/Aframe.md @@ -12,7 +12,7 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe # Working directory -- ssh into evb04 with `ssh sbnd-evb04`, then run the `ana_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. +- ssh into evb04 with `ssh sbnd-evb04`, then run the `crt_Aframe_launchdaq.sh` script to set up A-frame working directory (`DAQ_DevAreas/DAQ_23Sep2022CRTNoise/srcs/sbndaq/sbn-nd/DAQInterface`) where the `DAQInterface` is run. The crt config file is `crt01.fcl`. - Raw data is stored in `/daq/scratch/crt_Aframe_data/`. Analysis scripts are in `/home/nfs/sbnd/Aframe`, with each run's analysed root file in the runs folder, all of which analysed using the `analyze_event.fcl` file. @@ -25,3 +25,6 @@ The Tin and Tout daisy-chain loops back from 82 to 92, whe - [These slides](https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=28335&filename=Grafana%20Tutorial.pdf&version=1) include all details about the CRT monitor grafana page. - Leave a terminal open where you do ```ssh -KL localhost:10089:localhost:10080 sbnd@sbnd-gateway01.fnal.gov 'ssh -KL localhost:10080:localhost:10080 sbnd@sbnd-evb04.fnal.gov'``` - Then go to localhost:10089/ in your web browser + +# Analyse directory +- ssh into evb04 with `ssh sbnd-evb04`, then run the `ana_launchdaq.sh` script to set up A-frame analysing directory (`DAQ_DevAreas/DAQ_24Sep2022ANA/srcs/`). From 599bded1ffd4876844096c3ce76fc79f0d5e8e53 Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 2 May 2023 16:48:20 +0000 Subject: [PATCH 0566/1437] Update List_of_SBN_code_releases.md --- .../ReleaseManagement/Releases/List_of_SBN_code_releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md index e7c26f623..19beb482d 100644 --- a/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases.md @@ -11,6 +11,7 @@ These are the releases tagged until now: | Version | Notes | Detailed Notes |----------------|-----------------------------------|-------------------------------------------- +`v09_73_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_73_00) `v09_72_01` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_01) `v09_72_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_72_00) `v09_71_00` | 'sbncode' weekly release |[Release Notes](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_71_00) From 8746eba2a2177e3f60024375e39bcf5ed609558b Mon Sep 17 00:00:00 2001 From: Miquel Nebot Date: Tue, 2 May 2023 16:50:45 +0000 Subject: [PATCH 0567/1437] Create sbncode_v09_73_00.md --- .../Releases/sbncode_v09_73_00.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_73_00.md diff --git a/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_73_00.md b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_73_00.md new file mode 100644 index 000000000..1597df6c8 --- /dev/null +++ b/AnalysisInfrastructure/ReleaseManagement/Releases/sbncode_v09_73_00.md @@ -0,0 +1,42 @@ +--- +layout: page +title: sbncode_v09_73_00 +toc: true +--- + +sbncode_v09_73_00 Release Notes +======================================================================================= + +[List of sbncode releases](https://sbnsoftware.github.io/AnalysisInfrastructure/ReleaseManagement/Releases/List_of_SBN_code_releases) + +Download instructions for [sbncode]() + +Date +--------------------------------------------------- +02 May 2023 + +Purpose +--------------------------------------------------- +* Weekly release + +New features +--------------------------------------------------- +A new weekly release sbncode (v09_73_00) has been cut and distributed + +* sbncode (v09_73_00): + + Using: + * larsoft v09_73_00 + * sbnobj v09_16_01 + * sbnanaobj v09_20_07 + + Includes: + * SBNSoftware/sbncode ALP Implementation #339 + * SBNSoftware/sbnobj Add polarization as a variable for MeVPrtFlux #77 + * SBNSoftware/sbnanaobj Feature/jsmedley fill barycenter #94 + * SBNSoftware/sbncode Feature/jsmedley fill barycenter #348 + * SBNSoftware/sbncode Remove unnecessary and incorrect mutex locks. #351 + + +Extra info +--------------------------------------------------- From 10a0b6661585c311f3238c7efaf70e0c68bc8f2e Mon Sep 17 00:00:00 2001 From: mattfcs Date: Tue, 2 May 2023 13:34:34 -0400 Subject: [PATCH 0568/1437] Update MCproduction.md --- icaruscode_wiki/samples/MCproduction.md | 1 + 1 file changed, 1 insertion(+) diff --git a/icaruscode_wiki/samples/MCproduction.md b/icaruscode_wiki/samples/MCproduction.md index f67d9e087..4a764fbed 100644 --- a/icaruscode_wiki/samples/MCproduction.md +++ b/icaruscode_wiki/samples/MCproduction.md @@ -14,6 +14,7 @@ The instructions to request a new sample can be found in the [SBN production wik Samples are currently tracked on a database in the form of a [spreadsheet][MCDB]. Samples produced October 2020 and earlier were tracked in [ICARUS wiki](https://cdcvs.fnal.gov/redmine/projects/icarus-production/wiki/Status_of_MC_Production). +Current official available samples can be found at the [SBN Production Available Samples Page](/sbn/sbnprod_wiki/sample) The SBN Analysis Infrastructure group is attempting to keep a list of ["standard" configurations used in the SBN production campaigns](https://sbnsoftware.github.io/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.html) From 0428d6927915816ebd62d3ab1c4ca9ff3d8967c2 Mon Sep 17 00:00:00 2001 From: cerati Date: Thu, 4 May 2023 07:40:07 -0500 Subject: [PATCH 0569/1437] Update workflow_icarus.md add 2023A (first attempt) --- .../WorkflowManagement/workflow_icarus.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md index 061d714f4..303ecede9 100644 --- a/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md +++ b/AnalysisInfrastructure/WorkflowManagement/workflow_icarus.md @@ -31,3 +31,10 @@ cafmakerjob_icarus_sce.fcl [MC 2021C](https://docs.google.com/document/d/1UMmff2LUnRtIpgy0_eE9D3eDw96UkuXCTBCGbWVzWak/edit?usp=sharing) [MC 2022A](https://docs.google.com/document/d/1EFz33A7__IzkY4XKpeUjXJ8WGGc5CGkVRHFha2wqDlc/edit?usp=sharing) + +