#include <iostream>
TFile f1(
"mathcoreVectorIO_F.root",
"RECREATE");
TTree t1(
"t1",
"Tree with new Float LorentzVector");
t1.Branch(
"LV branch",
"ROOT::Math::XYZTVectorF",&v1);
for (
int i = 0; i <
n; ++i) {
double Px =
R.Gaus(0,10);
double Py =
R.Gaus(0,10);
double Pz =
R.Gaus(0,10);
double E =
R.Gaus(100,10);
v1->SetCoordinates(Px,Py,Pz,
E);
}
std::cout <<
" Time for new Float Vector " << timer.
RealTime() <<
" " << timer.
CpuTime() << std::endl;
}
void read() {
TFile f1(
"mathcoreVectorIO_F.root");
t1->SetBranchAddress(
"LV branch",&v1);
int n = (int)
t1->GetEntries();
std::cout <<
" Tree Entries " <<
n << std::endl;
double etot=0;
for (
int i = 0; i <
n; ++i) {
etot += v1->E();
}
std::cout <<
" Time for new Float Vector " << timer.
RealTime() <<
" " << timer.
CpuTime() << std::endl;
std::cout <<
" E average" <<
n<<
" " << etot <<
" " << etot/double(
n) << endl;
}
void runIt() {
#if defined(__CINT__) && !defined(__MAKECINT__)
cout << "This tutorial can run only using ACliC, you must run it by doing: " << endl;
cout << "\t .L tutorials/math/mathcoreVectorFloatIO.C+" << endl;
cout << "\t runIt()" << endl;
#endif
int nEvents = 100000;
write(nEvents);
read();
}
void mathcoreVectorFloatIO() {
#if defined(__CINT__) && !defined(__MAKECINT__)
cout << "This tutorial can run only using ACliC, you must run it by doing: " << endl;
cout << "\t .L tutorials/math/mathcoreVectorFloatIO.C+" << endl;
cout << "\t runIt()" << endl;
#endif
}
#define R(a, b, c, d, e, f, g, h, i)
R__EXTERN TSystem * gSystem
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
This is the base class for the ROOT Random number generators.
Double_t RealTime()
Stop the stopwatch (if it is running) and return the realtime (in seconds) passed between the start a...
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
Double_t CpuTime()
Stop the stopwatch (if it is running) and return the cputime (in seconds) passed between the start an...
void Stop()
Stop the stopwatch.
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
A TTree object has a header with a name and a title.
LorentzVector< PxPyPzE4D< float > > XYZTVectorF
LorentzVector based on x,y,x,t (or px,py,pz,E) coordinates in float precision with metric (-,...
constexpr Double_t E()
Base of natural log: