diff --git a/Generators/EvgenProdTools/scripts/rootconvert.py b/Generators/EvgenProdTools/scripts/rootconvert.py new file mode 100755 index 0000000000000000000000000000000000000000..d3a3a253844a37f81695f8376759a6b39c418087 --- /dev/null +++ b/Generators/EvgenProdTools/scripts/rootconvert.py @@ -0,0 +1,41 @@ +from array import array +import ROOT as rt +import yoda + +fName = 'MyOutput.yoda.gz' +yodaAOs = yoda.read(fName) +rtFile = rt.TFile(fName[:fName.find('.yoda')] + '.root', 'recreate') + +for name_slashes in yodaAOs: + name = name_slashes.replace("/", "_") + yodaAO = yodaAOs[name_slashes] + rtAO = None + + if 'Histo1D' in str(yodaAO): + rtAO = rt.TH1D(name, '', yodaAO.numBins(), array('d', yodaAO.xEdges())) + + + rtAO.Sumw2() + rtErrs = rtAO.GetSumw2() + + for i in range(rtAO.GetNbinsX()): + + rtAO.SetBinContent(i + 1, yodaAO.bin(i).sumW()) + rtErrs.AddAt(yodaAO.bin(i).sumW2(), i+1) + + elif 'Scatter2D' in str(yodaAO): + rtAO = rt.TGraphAsymmErrors(yodaAO.numPoints()) + rtAO.SetName(name) + + for i in range(yodaAO.numPoints()): + x = yodaAO.point(i).x(); y = yodaAO.point(i).y() + xLo, xHi = yodaAO.point(i).xErrs() + yLo, yHi = yodaAO.point(i).yErrs() + rtAO.SetPoint(i, x, y) + rtAO.SetPointError(i, xLo, xHi, yLo, yHi) + else: + continue + + rtAO.Write(name) + +rtFile.Close() diff --git a/Generators/Pythia8_i/test/test_01_Z_tautau.sh b/Generators/Pythia8_i/test/test_01_Z_tautau.sh index 0842307f6175e9f8d2a8219c05a7cb6e1ec05a9b..7ed9d24573d709db3ccb412e0b43a57bbe9f3a52 100755 --- a/Generators/Pythia8_i/test/test_01_Z_tautau.sh +++ b/Generators/Pythia8_i/test/test_01_Z_tautau.sh @@ -16,17 +16,19 @@ Gen_tf.py --ecmEnergy=13000. --maxEvents=10000 --firstEvent=-1 --randomSeed=1234 echo "art-result:$? Gen_tf" -python /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Pythia8i/rootconvert.py MyOutput.yoda.gz +python rootconvert.py MyOutput.yoda.gz -dcubeName = "Pythia8i" +echo "art-result: $? convert" + +dcubeName="Pythia8i" dcubeXml="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Pythia8i/test_01_Z_tautau/config_Ztt.xml" dcubeRef="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Pythia8i/test_01_Z_tautau/MyOutput.root" #dcubeName="Pythia8i" -#dcubeXml="/afs/cern.ch/user/l/lyue//Qualification_task_ART/Pythia_8/DcubeReference/test_01_Z_tautau/config_Ztt.xml" -#dcubeRef="/afs/cern.ch/user/l/lyue//Qualification_task_ART/Pythia_8/DcubeReference/test_01_Z_tautau/MyOutput.root" +#dcubeXml="/afs/cern.ch/user/l/lyue/Qualification_task_ART/Pythia_8/DcubeReference/test_01_Z_tautau/config_Ztt.xml" +#dcubeRef="/afs/cern.ch/user/l/lyue/Qualification_task_ART/Pythia_8/result_grid/testscripts/test_01_Z_tautau/MyOutput.root" bash /cvmfs/atlas.cern.ch/repo/sw/art/dcube/bin/art-dcube $dcubeName MyOutput.root $dcubeXml $dcubeRef -#yodadiff -o yodadiff MyOutput.yoda.gz ~/Qualification_task_ART/Pythia_8/result/Pythia_8/test_01_Z_tautau/MyOutput.yoda.gz # use this for histogram comparison if one only care if they are exactly the same +#yodadiff -o yodadiff MyOutput.yoda.gz ~/Qualification_task_ART/Pythia_8/result/Pythia_8/test_00_Zprime_1000_tt/MyOutput.yoda.gz # use this for histogram comparison if one only care if they are exactly the same echo "art-result: $? Dcube"