URANOS/Toolkit.h
2022-05-22 20:51:04 +02:00

222 lines
8.2 KiB
C++

#include "TGraph2D.h"
#include "TGraph2DErrors.h"
#include "TGraphErrors.h"
#include "TGraph.h"
#include "TMultiGraph.h"
#include "TGaxis.h"
#include "TStyle.h"
#include "TROOT.h"
#include <iostream>
#include <Riostream.h>
#include "TFile.h"
#include "TText.h"
//#include "TTree.h"
#include "THStack.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TF1.h"
#include "TF2.h"
#include "TProfile.h"
#include "Fit/FitResult.h"
#include "TFitResultPtr.h"
#include "TFitResult.h"
#include "TCanvas.h"
#include "TPad.h"
//#include "TVirtualPad.h"
//#include "TVirtualFitter.h"
#include "TNamed.h"
#include "TMath.h"
#include "TMatrix.h"
#include "TVectorT.h"
#include "TMatrixF.h"
#include "TMatrixD.h"
#include "TMatrixT.h"
#include "TMatrixTSym.h"
#include "TPaveStats.h"
#include "TString.h"
#include "TLatex.h"
#include "TColor.h"
#include <string>
#include "RConfig.h"
#include "Rtypes.h"
#include "TLegend.h"
#include "TSpline.h"
#include "TObject.h"
#include <strstream>
#include <sstream>
//#include <vector>
#include <float.h>
#include <TCHAR.h>
#include <malloc.h>
#include <QImage>
#include "TRandom3.h"
using namespace std;
string castDoubleToString(double number);
string castDoubleToString(double number, Int_t intacters);
string castFloatToString(Float_t number);
string castFloatToString(Float_t number, Int_t intacters);
string castIntToString(Int_t &number);
string castLongToString(Long_t &number);
Double_t lorentzianPeak(Double_t* x, Double_t* par);
Double_t gaussoffset(Double_t* x, Double_t* par);
Double_t errf( Double_t *x, Double_t *par);
void rootlogon();
vector<float> getRGBfromHCL(double h, double c0, double l0);
float getLinearC(double factor, double cmin, double cmax);
float getScaledColorValue(double factor, double pow, double cmin, double cmax);
void set_plot_styleSingleGradient(float h, Double_t a0, Double_t a1, Double_t a2, Double_t a3, Double_t a4);
void set_plot_styleHeatGradient(Double_t a0, Double_t a1, Double_t a2, Double_t a3, Double_t a4);
void set_plot_styleRainbowGradient(Double_t a0, Double_t a1, Double_t a2, Double_t a3, Double_t a4);
void set_plot_styleAllGradient(Double_t a0, Double_t a1, Double_t a2, Double_t a3, Double_t a4);
void set_plot_styleHeatGradientModified(Double_t a0, Double_t a1, Double_t a2, Double_t a3, Double_t a4);
void set_plot_styleHeatGradient2(Double_t a0, Double_t a1, Double_t a2, Double_t a3, Double_t a4);
void set_plot_style(Double_t a0, Double_t a1, Double_t a2, Double_t a3, Double_t a4);
int getScaledColor(float min, float max, float scale, int mode);
vector<float> getScaledColorRGB(float min, float max, float scale, int mode);
void set_plot_styleCool();
void CanvasFashion(TCanvas* c);
void TGraphFashion(TGraph* graph, TString xLabel, TString yLabel, Bool_t setSize);
void TGraphErrorFashion(TGraphErrors* graph, TString xLabel, TString yLabel, Bool_t setSize);
void TGraph2DFashion(TGraph2D* graph, TString xLabel, TString yLabel, TString zLabel, Bool_t setSize);
void TMultiGraphFashion(TMultiGraph* graph, TString xLabel, TString yLabel, Bool_t setSize);
void TF1Fashion(TF1* hist, TString xLabel, TString yLabel, Bool_t setSize);
void TH1Fashion(TH1* hist, TString xLabel, TString yLabel, Bool_t setSize);
void TProfileFashion(TProfile* hist, TString xLabel, TString yLabel, Bool_t setSize);
void TH2Fashion(TH2* hist, Bool_t setSize);
void TH2Fashion(TH2* hist, TString xLabel, TString yLabel, Bool_t setSize);
void THStackFashion(THStack* stack, TString xLabel, TString yLabel, Bool_t setSize);
TH2F* printHisto(Double_t zmin, Double_t zmax, Int_t size, TMatrixF data, TString OutputFolder, TString dataname, Bool_t logPlot);
void printTH1F(Double_t zmin, Double_t zmax, TH1F* histo, TString OutputFolder, TString dataname);
void printTH2F(Double_t zmin, Double_t zmax, TH2F* histo, TString OutputFolder, TString dataname);
void storeTH2ToFile(TString OutputFolder, TString filename, TH2F* th2);
void storeToFile(TString OutputFolder, TString filename, TString what_has_to_be_written, bool new_line);
void embedFonts(TString path);
void storeTH1ToFile(TString OutputFolder, TString filename,TH1* histo);
TMatrixF readMatrixPNG(TString folder, TString filename);
TMatrixF readmatrix(TString folder, TString filename, TString filetype, Int_t counter, Int_t size);
Int_t countFiles(TString folder, TString filename, TString filetype);
//void deleteStatsTH(vector<TH1*> *allTHs);
unsigned int heXheX(const TCHAR *value);
const std::string intToHex( int i);
void extrapolateZeroValues(TMatrixF &matrix);
TMatrixF reduceMatrix(TMatrixF &matrix, Float_t factor);
TMatrixF getGradientMatrix(TMatrixF &matrix);
void getGradientMatrixFromTH2(TH2F* matrix, TH2F* newMatrix);
TH2F* getTH2fromMatrix(TMatrixF &matrix, TString thName, TString thTitle);
TH1F* convoluteGaussian(TH1F* hist, Double_t gaussRelW);
int countEventsInEllipse(TH2F* histo, double radiusX, double x, double radiusY, double y);
void histoClearUp(vector<TObject*>* vectorTH);
double getWWProb(double density, double atWeight, double cs, double lambda);
double getLfromE(double energy);
double getEfromL(double lambda);
TSpline3* getSplinedDetectorEnergyModel();
int getNumberOfFileEntries(TString dname);
inline double legendre_Pl(int n, double x);
void logXaxis(TH2* h);
void rebinX(TH1* h);
void logaxis(TH1* h);
void logXaxis(TH2* h);
void logYaxis(TH2* h);
double getRLuftWasser(float temperature);
double calcNeutronDiffTime(double z0, double z0Alt, double energy, double cosTheta);
double getEvaporationEnergy(double theta, TRandom* r);
double getModeratedCfEnergy(TRandom* r);
double getFissionEnergy(TRandom* r);
double getFissionEnergy2(TRandom* r);
vector<float> getThermalPDF(const double nEnergy, const float massElm, const float temperature, TRandom* r);
double getThermalEnergyLog(const TF1* spectrumFunc, TRandom* r);
double getThermalEnergy(TF1* spectrumFunc, TRandom* r);
double getThermalEnergyFromSource(const TF1* spectrumFunc, TRandom* r);
double scalarProduct(double rx1, double ry1, double rz1, double rx2, double ry2, double rz2);
double intersectCylinderMantle(double stVx, double stVy, double stVz, double theta, double phi, double px, double py, double pz, double dRad);
double intersectSphere(double stVx, double stVy, double stVz, double theta, double phi, double px, double py, double pz, double dRad);
double calcCylindricalHitDist2(double stVx, double stVy, double stVz, double theta, double phi, double px, double py, double pz, double dRad, double xRef, double yRef);
double calcCylindricalHitDist(double stVx, double stVy, double stVz, double theta, double phi, double px, double py, double pz, double dRad, double xRef, double yRef);
double intersectCylinder(double stVx, double stVy, double stVz, double theta, double phi, double px, double py, double pz, double dRad);
double getDistanceToLine(double stVx, double stVy, double stVz, double theta, double phi, double px, double py, double pz);
double getDistanceToPoint(double stVx, double stVy, double stVz, double theta, double phi, double px, double py, double pz);
double getDistanceToPointOLD(double stVx, double stVy, double stVz, double theta, double phi, double px, double py, double pz);
Double_t legendrian(double* x, Double_t* par);
Double_t legendrian10fold(double* x, Double_t* par);
string legendrian10folded(Float_t* par);
static int ArraySize(double array[]);
static double legendrianNfold(double* x, Double_t* par);
float endfNumberConv(string str);
float getIndexHorizontalPosition(const TMatrixF& matrix, int line, double value, bool doLogSearch);
float getIndexPosition(const TMatrixF& matrix, double value, bool doLogSearch);
double calcMeanCS(const TMatrixF& matrix, double energy);
double getHighEnergyCosTheta(const TMatrixF& angleMatrix, const TMatrixF& cumulatedProbMatrix, double energy, double prob);
double getAngleFromCumulativeFunction(const TF1* spectrumFunc, float min, float max, TRandom* r);
TF1* calcMeanAngularDistribution(const TMatrixF& matrix, double energy);
void turnInputMatrix(TMatrixF& inputMatrix);
int changeInputMatrixValue(int value);