// c++ -o tesi3 tesi3.cpp `root-config --cflags --glibs` #ifndef functions_h #define functions_h #include #include #include #include #include #include #include #include #include "TF1.h" #include "TH1F.h" #include "TH2F.h" #include "TGraph.h" #include "TGraphErrors.h" #include "TCanvas.h" #include "TStyle.h" #include "TGaxis.h" #include "TMath.h" #include "TFile.h" using namespace std; struct object { int id; double mass; array pos; double R; double phi; double theta; array mom; double P; double phi_mom; double theta_mom; array ang_mom; double L; double phi_ang_mom; double theta_ang_mom; }; struct object create_object ( int id, double mass, double x, double y, double z, double px, double py, double pz ); double scalar_product ( array < double, 3 > v , array < double, 3 > w ); array < double , 3 > vector_sum ( array < double, 3 > v , array < double, 3 > w ); array < double , 3 > vector_diff ( array < double, 3 > v , array < double, 3 > w ); array < double, 3 > vector_product ( array < double, 3 > v , array < double, 3 > w ); array < double, 3 > compute_Lb ( array < double, 3 > v, array < double, 3 > w ); double compute_angle ( array < double, 3 > v , array < double, 3 > w ); double compute_r2 ( array < double , 3 > v , array < double , 3 > w ); double compute_energy ( object obj1 , object obj2 ); double compute_a ( object obj1, object obj2 ); double compute_e ( object obj1 , object obj2 ); double compute_K ( object Ai, object Af, object Bi, object Bf ); vector < double > compute_bins ( int nBins, double min, double max ); void archive_K ( vector < double > K ); vector < object > Initial_Conditions(); vector < object > Final_Conditions(); vector < double > Compute_AngVar ( vector < object > Start , vector < object > End ); vector < double > Compute_EccVar ( vector < object > Start , vector < object > End ); void Print_Theta ( string path, TH1F h1, TH1F h2, string name ); void Print_ScatterPlot ( string path, TH2F h, string name ); #endif