Filling an n-tuple (simulating the conductivity of a material in different conditions of pressure and temperature) and writing it to a file¶
Ported to Notebook by: Theis Hansen
To use the ROOT toolkit, we need to import ROOT onto our Notebook, which we also set to C++
The Tuple¶
We create a file which will contain our ntuple and the tuple itself.
In [1]:
TFile ofile("conductivity_experiment.root","RECREATE");
TNtuple cond_data("cond_data","Example N-Tuple","Potential:Current:Temperature:Pressure");
Then we fill it randomly (to simulate acquired data) using the TRandom3 random generator. We are also applying some "smearing" (measurement errors): 1% error on voltage (pot), pressure and current and 1.3 absolute error on temperature. At the end of the loop body we fill the ntuple.
In [2]:
TRandom3 rndm;
float pot,cur,temp,pres;
for (int i=0;i<10000;++i){
pot=rndm.Uniform(0.,10.);
temp=rndm.Uniform(250.,350.);
pres=rndm.Uniform(0.5,1.5);
cur=pot/(10.+0.05*(temp-300.)-0.2*(pres-1));
pot*=rndm.Gaus(1.,0.01);
temp+=rndm.Gaus(0.,0.3);
pres*=rndm.Gaus(1.,0.02);
cur*=rndm.Gaus(1.,0.01);
cond_data.Fill(pot,cur,temp,pres);
}
Save the TNtuple and close the file.
In [3]:
cond_data.Write();
ofile.Close();