File indexing completed on 2024-05-12 03:49:30
0001 /* 0002 File : samplefiles.C 0003 Project : LabPlot 0004 Description : ROOT script to create test files for ROOT importer 0005 ------------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2018 Christoph Roick <chrisito@gmx.de> 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 // ROOT test files are regenerated by calling 'root samplefiles.C'. 0011 // Note that creation date and random numbers will be different in the new files. 0012 0013 void samplefiles() 0014 { 0015 TFile fBasic("basic_lz4.root", "RECREATE"); 0016 fBasic.SetCompressionAlgorithm(ROOT::kLZ4); 0017 0018 TH1D doubleHist("doubleHist", "", 100, -5., 5.); 0019 doubleHist.Sumw2(); 0020 doubleHist.FillRandom("gaus", 10000); 0021 doubleHist.Write(); 0022 0023 TH1F floatHist("floatHist", "", 100, -5., 5.); 0024 floatHist.Sumw2(); 0025 floatHist.FillRandom("gaus", 10000); 0026 floatHist.Write(); 0027 0028 TH1I intHist("intHist", "", 100, -5., 5.); 0029 intHist.Sumw2(); 0030 intHist.FillRandom("gaus", 10000); 0031 intHist.Write(); 0032 0033 TH1S shortHist("shortHist", "", 100, -5., 5.); 0034 shortHist.Sumw2(); 0035 shortHist.FillRandom("gaus", 10000); 0036 shortHist.Write(); 0037 0038 TH1C charHist("charHist", "", 100, -5., 5.); 0039 charHist.Sumw2(); 0040 charHist.FillRandom("gaus", 1000); 0041 charHist.Write(); 0042 0043 fBasic.Close(); 0044 0045 TFile fAdvanced("advanced_zlib.root", "RECREATE"); 0046 fAdvanced.SetCompressionAlgorithm(ROOT::kZLIB); 0047 0048 vector<double> borders; 0049 for (size_t i = 0; i < 101; ++i) 0050 borders.push_back(0.09 * i - 5. + 1.e-4 * i * i); 0051 0052 TH1D variableBinHist("variableBinHist", "", 100, borders.data()); 0053 variableBinHist.Sumw2(); 0054 variableBinHist.FillRandom("gaus", 10000); 0055 variableBinHist.Write(); 0056 variableBinHist.FillRandom("gaus", 1000000); 0057 variableBinHist.Write(); 0058 0059 TTree tree("tree", "TTree title"); 0060 double d; 0061 int i; 0062 struct { 0063 int a[2]; 0064 Double_t d; 0065 float f; 0066 } s; 0067 tree.Branch("doubleTest", &d, "doubleTest/D"); 0068 tree.Branch("intTest", &i, "intTest/I"); 0069 tree.Branch("structTest", &s, "array[2]/I:double/D:float/F"); 0070 0071 for (size_t j = 0; j < 10; ++j) { 0072 d = j; 0073 i = j; 0074 s.f = 9 - j; 0075 s.a[0] = j; s.a[1] = 2 * j; 0076 s.d = s.f * s.f; 0077 tree.Fill(); 0078 } 0079 tree.Write(); 0080 0081 TNtuple tuple("tuple", "TNtuple title", "x:y:z"); 0082 tuple.Fill(1., 2., 3.); 0083 tuple.Write(); 0084 tuple.Fill(3., 4., 5.); 0085 tuple.Write(); 0086 0087 fAdvanced.Close(); 0088 0089 ifstream infile("basic_lz4.root"); 0090 ofstream outfile("broken_basic.root"); 0091 0092 char buffer[3000]; 0093 infile.read(buffer, 3000); 0094 outfile.write(buffer, 3000); 0095 }