From ead78f6ee329702e24b21c73ec5c5221d4e8c37a Mon Sep 17 00:00:00 2001 From: Marco Rimoldi <marco.rimoldi@cern.ch> Date: Sat, 3 Dec 2022 20:06:38 +0100 Subject: [PATCH] SUSYTools - add ART Test SUSYTools - add ART Test --- PhysicsAnalysis/SUSYPhys/SUSYTools/README.md | 46 +++++++++++++++---- .../SUSYTools/scripts/TestSUSYToolsAlg.py | 25 +++++----- .../test_SUSYTools_ART_MC20e-AnaBase-grid.sh | 28 +++++++++++ .../test_SUSYTools_ART_MC21a-AnaBase-grid.sh | 28 +++++++++++ .../test_SUSYTools_ART_MCe-AnaBase-grid.sh | 28 ----------- .../test_SUSYTools_ART_data18-AnaBase-grid.sh | 28 +++++++++++ .../test_SUSYTools_ART_data22-AnaBase-grid.sh | 28 +++++++++++ 7 files changed, 161 insertions(+), 50 deletions(-) create mode 100755 PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MC20e-AnaBase-grid.sh create mode 100755 PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MC21a-AnaBase-grid.sh delete mode 100755 PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MCe-AnaBase-grid.sh create mode 100755 PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_data18-AnaBase-grid.sh create mode 100755 PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_data22-AnaBase-grid.sh diff --git a/PhysicsAnalysis/SUSYPhys/SUSYTools/README.md b/PhysicsAnalysis/SUSYPhys/SUSYTools/README.md index e26f5ad4eff2..1260f6545275 100644 --- a/PhysicsAnalysis/SUSYPhys/SUSYTools/README.md +++ b/PhysicsAnalysis/SUSYPhys/SUSYTools/README.md @@ -17,13 +17,11 @@ The recommended tags are on the [background forum TWiki page](https://twiki.cern ------------------------------------ AnalysisBase / AthAnalysisBase Setup ------------------------------------ - -Because these two releases are becoming more similar, most of the instructions are the same. These instructions refer to 21.2.19 as an example, but you should pick the appropriate version when setting up. Set up the latest recommended AnalysisBase release:: - +Set up the latest recommended AnalysisBase release: ```bash setupATLAS lsetup git -asetup "AnalysisBase,22.2.91" +asetup "AnalysisBase,22.2.97" # or the nightly: asetup "AnalysisBase,22.2,latest" ``` @@ -31,7 +29,7 @@ Or the latest AthAnalysis release:: ```bash setupATLAS -asetup "AthAnalysis,22.2.91" +asetup "AthAnalysis,22.2.97" # or the nightly: asetup "AthAnalysis,22.2,latest" ``` @@ -68,9 +66,9 @@ source x86_64-centos7-gcc11-opt/setup.sh and you are ready to go! --------------- +------------------------------------ Testing --------------- +------------------------------------ Unit tests now use [CTest](https://cmake.org/Wiki/CMake/Testing_With_CTest). To run unit tests, simply **go to your build area** and type: ```bash @@ -101,4 +99,36 @@ athena.py SUSYTools/minimalExampleJobOptions_mc.py which is the athena-friendly equivalent of the `SUSYToolsTester` code above for running on MC. You can also change "mc" to "data" or "atlfast" to run on data or fast simulation if you would prefer. ------------------------------------- +------------------------------------------------------------------------ +For expert only: Update the SUSYTools reference files for the CI unit test. +------------------------------------------------------------------------ + +1) Contact atlas-phys-susy-bgforum-conveners@cern.ch +2) If they agree, proceed with: +```bash +cd src/athena +git atlas addpkg SUSYTools (or any other additional packages) +cd ../../build +cmake ../athena/Projects/WorkDir +make -j +source x86_64-centos7-gcc11-opt/setup.sh +ctest +``` +or +```bash +ctest -R SUSYTools_ut_SUSYToolsTester_data_ctest +ctest -R SUSYTools_ut_SUSYToolsTester_data_Run3_ctest +ctest -R SUSYTools_ut_SUSYToolsTester_mc_ctest +ctest -R SUSYTools_ut_SUSYToolsTester_mc_Run3_ctest +``` +3) Before copying the files, check that all the changes are expected. +```bash +cd $WorkDir_DIR/../PhysicsAnalysis/SUSYPhys/SUSYTools/CMakeFiles/unitTestRun/ +cp ut_SUSYToolsTester_data.log-todiff $WorkDir_DIR/../../src/athena/PhysicsAnalysis/SUSYPhys/SUSYTools/share/ut_SUSYToolsTester_data.ref +cp ut_SUSYToolsTester_data_Run3.log-todiff $WorkDir_DIR/../../src/athena/PhysicsAnalysis/SUSYPhys/SUSYTools/share/ut_SUSYToolsTester_data_Run3.ref +cp ut_SUSYToolsTester_mc.log-todiff $WorkDir_DIR/../../src/athena/PhysicsAnalysis/SUSYPhys/SUSYTools/share/ut_SUSYToolsTester_mc.ref +cp ut_SUSYToolsTester_mc_Run3.log-todiff $WorkDir_DIR/../../src/athena/PhysicsAnalysis/SUSYPhys/SUSYTools/share/ut_SUSYToolsTester_mc_Run3.ref +cd $WorkDir_DIR/../../src/athena/PhysicsAnalysis/SUSYPhys/SUSYTools/share/ +git add ut_SUSYToolsTester* +``` +Please tag the SUSY bgforum conveners in the athena MR. \ No newline at end of file diff --git a/PhysicsAnalysis/SUSYPhys/SUSYTools/scripts/TestSUSYToolsAlg.py b/PhysicsAnalysis/SUSYPhys/SUSYTools/scripts/TestSUSYToolsAlg.py index a2d873a0a3f6..e046c9c653ac 100755 --- a/PhysicsAnalysis/SUSYPhys/SUSYTools/scripts/TestSUSYToolsAlg.py +++ b/PhysicsAnalysis/SUSYPhys/SUSYTools/scripts/TestSUSYToolsAlg.py @@ -20,13 +20,13 @@ parser.add_option('-n', '--dryrun', dest = 'dryrun', default=False, action = 'st parser.add_option('--log-level', dest = 'log_level', default = 'INFO', choices = ['ALWAYS','FATAL','ERROR','WARNING','INFO','DEBUG','VERBOSE']) parser.add_option('--dosyst', dest = 'dosyst', default = False, action = 'store_true') parser.add_option( '-s', '--submission-dir', dest = 'submission_dir', default = 'submitDir', help = 'Submission directory for EventLoop' ) -parser.add_option('-t', '--type', dest = 'type', default = 'mc16e', help = 'Job type. (mc16a, mc16d, mc16e, mc20a, mc20d, mc20e, mc21a, data18, data22)', choices = ['mc16a', 'mc16d', 'mc16e', 'mc20a', 'mc20d', 'mc20e','mc21a', 'data18', 'data22']) +parser.add_option('-t', '--type', dest = 'type', default = 'mc20e', help = 'Job type. (mc20a, mc20d, mc20e, mc21a, data18, data22)', choices = ['mc20a', 'mc20d', 'mc20e', 'mc21a', 'data18', 'data22']) parser.add_option('--AFII', dest = 'AFII', default = False, action = 'store_true' ) parser.add_option('-d', '--daod', dest = 'daod', type = 'int', default = 0, help = 'input DAOD type. Do not specify for xAOD input' ) parser.add_option('-f', '--flav', dest = 'flav', default = 'PHYSVAL', help = 'input DAOD flavour' ) parser.add_option('-m', '--maxEvts', dest = 'maxEvts', type = 'int', default = 500, help = 'Max events (-1 is all)' ) parser.add_option('-M', '--maxEvtsManual', dest = 'maxEvtsManual', type = 'int') -parser.add_option('-p', '--ptag', dest = 'ptag', default = 'p5057', help = 'ptag' ) +parser.add_option('-p', '--ptag', dest = 'ptag', default = 'p5226', help = 'ptag' ) parser.add_option('--grl', dest = 'grl') parser.add_option('--inputDir', dest = 'inputDir') parser.add_option('--inputFile', dest = 'inputFile') @@ -35,7 +35,7 @@ parser.add_option('--inputXRD', dest = 'inputXRD') parser.add_option('--overwrite', dest = 'overwrite', default = False, action = 'store_true' ) ( options, args ) = parser.parse_args() print("Configured input data ptag: %s"%(options.ptag)) -ptageqdata = {'p4016':'p4017','p4095':'p4096','p4237':'p4238','p4441':'p4441','p4631':'p4441','p4853':'p4853','p5057':'p5057','p5226':'p5226'} +ptageqdata = {'p5226':'p5226','p5278':'p5267'} if 'data' in options.type and options.ptag in ptageqdata: options.ptag = ptageqdata[options.ptag] print("Overriding ptag to equivalent data ptag: -> %s"%(options.ptag)) @@ -65,16 +65,12 @@ cvmfsInputArea = [ '/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/ARTInput/', ] inputFiles = {} -inputFiles['mc16e_AFII'] = 'DAOD_PHYSVAL.mc16_13TeV.410470.AFII_mc16e_%s.PHYSVAL.pool.root'%(options.ptag) -inputFiles['mc16a'] = 'DAOD_PHYSVAL.mc16_13TeV.410470.FS_mc16a_%s.PHYSVAL.pool.root'%(options.ptag) -inputFiles['mc16d'] = 'DAOD_PHYSVAL.mc16_13TeV.410470.FS_mc16d_%s.PHYSVAL.pool.root'%(options.ptag) -inputFiles['mc16e'] = 'DAOD_PHYSVAL.mc16_13TeV.410470.FS_mc16e_%s.PHYSVAL.pool.root'%(options.ptag) inputFiles['mc20a'] = 'DAOD_mc20aPHYS.%s.art.merge.root'%(options.ptag) inputFiles['mc20d'] = 'DAOD_mc20dPHYS.%s.art.merge.root'%(options.ptag) inputFiles['mc20e'] = 'DAOD_PHYS.mc20_13TeV.410470.FS_mc20e_%s.PHYS.pool.root'%(options.ptag) inputFiles['mc21a'] = 'DAOD_PHYS.mc21_13p6TeV.601229.FS_mc21a_%s.PHYS.pool.root'%(options.ptag) inputFiles['data18'] = 'DAOD_PHYS.data18_13TeV.358031.data18_%s.PHYS.pool.root'%(options.ptag) -inputFiles['data22'] = '' +inputFiles['data22'] = 'DAOD_PHYS.data22_13p6TeV.430542.data22_%s.PHYS.pool.root'%(options.ptag) if options.daod == 0 and not '%s%s'%(options.type,'_AFII' if options.AFII else '') in inputFiles: sys.exit('No input file configured for type %s%s. Exiting.'%(options.type,'_AFII' if options.AFII else '')) inputDir = '' @@ -117,6 +113,8 @@ job.options().setDouble( ROOT.EL.Job.optMaxEvents, options.maxEvts ) from AnaAlgorithm.AnaAlgorithmConfig import AnaAlgorithmConfig config = AnaAlgorithmConfig( 'SUSYToolsAlg' ) +config.STConfigFile = "SUSYTools/SUSYTools_Default.conf" +if (options.type == "data22" or "mc21" in options.type): config.STConfigFile = "SUSYTools/SUSYTools_Default_Run3.conf" config.DoSyst = options.dosyst config.DataSource = 1 config.OutputLevel = outputlvl[options.log_level] @@ -132,16 +130,15 @@ if options.AFII: # set mcCampaign if 'mc' in options.type: config.mcCampaign = options.type -else: - config.mcCampaign = 'mc16e' +elif options.type == 'data18': + config.mcCampaign = 'mc20e' + config.DataSource = 0 +elif options.type == 'data22': + config.mcCampaign = 'mc21a' config.DataSource = 0 # set lumicalc info PRWLumiCalc = {} -PRWLumiCalc['mc16a'] = ['/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/GoodRunsLists/data16_13TeV/20180129/PHYS_StandardGRL_All_Good_25ns_297730-311481_OflLumi-13TeV-009.root', - '/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/GoodRunsLists/data15_13TeV/20170619/PHYS_StandardGRL_All_Good_25ns_276262-284484_OflLumi-13TeV-008.root'] -PRWLumiCalc['mc16d'] = ['/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/GoodRunsLists/data17_13TeV/20180619/physics_25ns_Triggerno17e33prim.lumicalc.OflLumi-13TeV-010.root'] -PRWLumiCalc['mc16e'] = ['/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/GoodRunsLists/data18_13TeV/20190318/ilumicalc_histograms_None_348885-364292_OflLumi-13TeV-010.root'] PRWLumiCalc['mc20a'] = ['/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/GoodRunsLists/data16_13TeV/20180129/PHYS_StandardGRL_All_Good_25ns_297730-311481_OflLumi-13TeV-009.root', '/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/GoodRunsLists/data15_13TeV/20170619/PHYS_StandardGRL_All_Good_25ns_276262-284484_OflLumi-13TeV-008.root'] PRWLumiCalc['mc20d'] = ['/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/GoodRunsLists/data17_13TeV/20180619/physics_25ns_Triggerno17e33prim.lumicalc.OflLumi-13TeV-010.root'] diff --git a/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MC20e-AnaBase-grid.sh b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MC20e-AnaBase-grid.sh new file mode 100755 index 000000000000..cf4da39adca8 --- /dev/null +++ b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MC20e-AnaBase-grid.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# art-description: SUSYTools ART test - TestSUSYToolsAlg.py +# art-type: grid +# art-include: master/AnalysisBase +# art-output: hist-MC20e_DAOD_PHYS.root +# art-output: dcube + +# Create empty pool file +art.py createpoolfile + +echo "Running SUSYTools test: \'TestSUSYToolsAlg.py -f PHYS -t mc20e -m 2000 -p p5226 --inputFile DAOD_PHYS.mc20_13TeV.410470.FS_mc20e_p5226.PHYS.pool.root --inputDir /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SUSYTools/ --dosyst'" +TestSUSYToolsAlg.py -f PHYS -t mc20e -m 2000 -p p5226 --inputFile DAOD_PHYS.mc20_13TeV.410470.FS_mc20e_p5226.PHYS.pool.root --inputDir /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SUSYTools/ --dosyst +echo "art-result: $? TEST" + +mv submitDir/hist-*.root ./hist-mc20e_DAOD_PHYS.root + +echo "Running DCube post-processing" + +tName="MC20e" +dcubeRef=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/References/hist-mc20e_DAOD_PHYS-rel22.root +dcubeXml=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/xml/dcube_config_master_rel22.xml + +/cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube ${tName} hist-MC20e_DAOD_PHYS.root ${dcubeXml} ${dcubeRef} + +echo "art-result: $? DCUBE" + +echo "Done." diff --git a/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MC21a-AnaBase-grid.sh b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MC21a-AnaBase-grid.sh new file mode 100755 index 000000000000..e40dba639f6c --- /dev/null +++ b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MC21a-AnaBase-grid.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# art-description: SUSYTools ART test - TestSUSYToolsAlg.py +# art-type: grid +# art-include: master/AnalysisBase +# art-output: hist-MC21a_DAOD_PHYS.root +# art-output: dcube + +# Create empty pool file +art.py createpoolfile + +echo "Running SUSYTools test: \'TestSUSYToolsAlg.py -f PHYS -t mc21a -m 2000 -p p5278 --inputFile DAOD_PHYS.mc21_13p6TeV.601229.FS_mc21a_p5278.PHYS.pool.root --inputDir /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SUSYTools/ --dosyst'" +TestSUSYToolsAlg.py -f PHYS -t mc21a -m 2000 -p p5278 --inputFile DAOD_PHYS.mc21_13p6TeV.601229.FS_mc21a_p5278.PHYS.pool.root --inputDir /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SUSYTools/ --dosyst +echo "art-result: $? TEST" + +mv submitDir/hist-*.root ./hist-mc21a_DAOD_PHYS.root + +echo "Running DCube post-processing" + +tName="MC21a" +dcubeRef=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/References/hist-mc21a_DAOD_PHYS-rel22.root +dcubeXml=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/xml/dcube_config_master_rel22.xml + +/cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube ${tName} hist-mc21a_DAOD_PHYS.root ${dcubeXml} ${dcubeRef} + +echo "art-result: $? DCUBE" + +echo "Done." diff --git a/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MCe-AnaBase-grid.sh b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MCe-AnaBase-grid.sh deleted file mode 100755 index 388d1f1a4a7c..000000000000 --- a/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_MCe-AnaBase-grid.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# art-description: SUSYTools ART test - TestSUSYToolsAlg.py -# art-type: grid -# art-include: 22.2/AnalysisBase -# art-output: hist-MCe_DAOD_PHYS.root -# art-output: dcube - -# Create empty pool file -art.py createpoolfile - -echo "Running SUSYTools test: \'TestSUSYToolsAlg.py -t mc16e -m 1500\' -p 4441 -f PHYS --dosyst" -TestSUSYToolsAlg.py -t mc16e -m 1500 -p p4441 -f PHYS --dosyst -echo "art-result: $? TEST" - -mv submitDir/hist-ARTInput.root ./hist-MCe_DAOD_PHYS.root - -echo "Running DCube post-processing" - -tName="MCe" -dcubeRef=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/References/hist-MCe_DAOD_PHYS-rel22.root -dcubeXml=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/xml/dcube_config_master_rel22.xml - -/cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube ${tName} hist-MCe_DAOD_PHYS.root ${dcubeXml} ${dcubeRef} - -echo "art-result: $? DCUBE" - -echo "Done." diff --git a/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_data18-AnaBase-grid.sh b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_data18-AnaBase-grid.sh new file mode 100755 index 000000000000..47a00a488fdc --- /dev/null +++ b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_data18-AnaBase-grid.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# art-description: SUSYTools ART test - TestSUSYToolsAlg.py +# art-type: grid +# art-include: master/AnalysisBase +# art-output: hist-data18_DAOD_PHYS.root +# art-output: dcube + +# Create empty pool file +art.py createpoolfile + +echo "Running SUSYTools test: \'TestSUSYToolsAlg.py -f PHYS -t data18 -p p5226 --inputFile DAOD_PHYS.data18_13TeV.356250.data18_p5226.PHYS.pool.root --inputDir /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SUSYTools/'" +TestSUSYToolsAlg.py -f PHYS -t data18 -p p5226 --inputFile DAOD_PHYS.data18_13TeV.356250.data18_p5226.PHYS.pool.root --inputDir /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SUSYTools/ +echo "art-result: $? TEST" + +mv submitDir/hist-*.root ./hist-data18_DAOD_PHYS.root + +echo "Running DCube post-processing" + +tName="data18" +dcubeRef=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/References/hist-data18_DAOD_PHYS-rel22.root +dcubeXml=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/xml/dcube_config_master_rel22.xml + +/cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube ${tName} hist-data18_DAOD_PHYS.root ${dcubeXml} ${dcubeRef} + +echo "art-result: $? DCUBE" + +echo "Done." diff --git a/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_data22-AnaBase-grid.sh b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_data22-AnaBase-grid.sh new file mode 100755 index 000000000000..c9f9038db710 --- /dev/null +++ b/PhysicsAnalysis/SUSYPhys/SUSYTools/test/test_SUSYTools_ART_data22-AnaBase-grid.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# art-description: SUSYTools ART test - TestSUSYToolsAlg.py +# art-type: grid +# art-include: master/AnalysisBase +# art-output: hist-data22_DAOD_PHYS.root +# art-output: dcube + +# Create empty pool file +art.py createpoolfile + +echo "Running SUSYTools test: \'TestSUSYToolsAlg.py -f PHYS -t data22 -p p5267 --inputFile DAOD_PHYS.data22_13p6TeV.430542.data22_p5267.PHYS.pool.root --inputDir /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SUSYTools/'" +TestSUSYToolsAlg.py -f PHYS -t data22 -p p5267 --inputFile DAOD_PHYS.data22_13p6TeV.430542.data22_p5267.PHYS.pool.root --inputDir /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SUSYTools/ +echo "art-result: $? TEST" + +mv submitDir/hist-*.root ./hist-data22_DAOD_PHYS.root + +echo "Running DCube post-processing" + +tName="data22" +dcubeRef=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/References/hist-data22_DAOD_PHYS-rel22.root +dcubeXml=/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/dev/SUSYTools/ART/xml/dcube_config_master_rel22.xml + +/cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube ${tName} hist-data22_DAOD_PHYS.root ${dcubeXml} ${dcubeRef} + +echo "art-result: $? DCUBE" + +echo "Done." -- GitLab