ROOT logo
//-------------------------------------------------------------------------
//    Description: 
//    This class is included into LRC library for Long-Range Correlation analysis
//    it is base class for NN, PtN, PtPt
//    implements base methods for thees classes
//    Origin: Petr Naumenko, SPbSU-CERN, Petr.Naoumenko@cern.ch,
//    Andrey Ivanov (SPbSU-CERN), Igor Altsebeev (SPbSU-CERN) 
//-------------------------------------------------------------------------

#ifndef ALILRCANALYSIS_H
#define ALILRCANALYSIS_H

/*  See cxx source for full Copyright notice */

#include "TObject.h"



class TFile;
class TProfile;
class TH1D;
class TH2D;


class AliLRCAnalysis :public  TObject{
    public:
	void DrawAbs();
	void DrawAbs(const int * const mas );
	void DrawAbsPure( const int * const mas, bool drawPaveLabel );
	void DrawRel();
	void DrawRel( const int * const mas );
	void DrawRelPure( const int * const mas, bool drawPaveLabel );
	void DrawHist( const int * const mDrawArray, bool drawPaveLabel, double aCoef, double bCoef
		, double aCoefError, double bCoefError, TH1D* profToDraw, int histType );

	void SetXmin(double xMin);
	void SetXmax(double xMax);
	void SetNsigma(double nSigma);
	void SetBinsRange(int binMin, int binMax);
	double GetArel() const;
	double GetBrel() const;
	double GetArelError() const;
	double GetBrelError() const;
	double GetXi2rel() const;
	double GetAabs() const;
	double GetBabs() const;
	double GetAabsError() const;
	double GetBabsError() const;
	double GetXi2abs() const;
	double GetFitXmin() const;
	double GetFitXmax() const;
	void Calculate();
	bool SetFitRange(double xMin, double xMax);
	bool SetFitRangeMin(double xMin);
	bool SetFitRangeMax(double xMax);
	void SetFullFitRange();
	void SetFitMethod(int id);

	double GetRoundWithError( double value, double error ) const ;
	double GetRoundWithError( double value, double error, int pres ) const;
	double GetRoundWithPrecision( double value, int pres ) const;
	
	double GetRoundValueErrorPrecision( double value, double error, int pres ) const;
	TH1D* GetAbsHisto() const;
	TH1D* GetRelHisto() const;
	TH1D* GetForwardValueDist() const;
	TH1D* GetBackwardValueDist() const;
	
	AliLRCAnalysis();
	AliLRCAnalysis(const AliLRCAnalysis& a);
	AliLRCAnalysis& operator= (const AliLRCAnalysis& a);
	virtual ~AliLRCAnalysis();

protected:
	TH1D* fPrAbs; //Work 1d histogramm in absolute var
	TH1D* fPrRel; //Work 1d histogramm in rellation var
	TH1D* fPrf; //Forward distribution
	TH1D* fPrb; //Backward distribution
	TFile* fileHist; // File with histrogramms
	double fdptb; //Work var for error calculation
	int fEntries; //Number of bins
	double Integral(TH2D* source, int nbin) const;
	//Creating profile from histogramm
	void CreateHist(char *name, char *nameAbs, char *nameRel, char *atitleF, char *atitleB,char *rtitleF, char *rtitleB,TH2D* sourceHist);
	void SetGraphics() const;
	void SetErrors(TH2D* source, const char *name);
	void SetErrors(TH2D* source, const char *name, double ptd, TH2D* nb);
	void SetErrors(TH2D* source, const char *name, double ptd, const TProfile* nb);

    private:
	static const int fgkPlotFlags = 10;  // Size of flags array used to chouse vat variables should be shown on a plot
	char*  fSx; 		// Title of x axis
	char*  fSy; 		// Title of y axis
	double fxFitMin; 	// FitMin minimum of fit baundary
	double fxFitMax; 	// FitMax maximum of fit baundary
	double fNsigma; 	// N sigma for fit range
	double farel; 		// ax = b the a relative
	double fbrel; 		// ax = b the b reletive
	double farelError; 	// a relative error
	double fbrelError; 	// b reletive error
	double fXi2rel; 	// chi square reletive
	double faabs; 		// ax = b the a absolut
	double fbabs; 		// ax = b the b absolut
	double faabsError; 	// a absolut error
	double fbabsError; 	// b absolut error
	double fXi2abs; 	// chi square absolut  
	int fFitMethod; 	// 0 - 1st variant, 1 - 2nd variant

	ClassDef(AliLRCAnalysis,0)                 // macro for rootcint
};

#endif

 AliLRCAnalysis.h:1
 AliLRCAnalysis.h:2
 AliLRCAnalysis.h:3
 AliLRCAnalysis.h:4
 AliLRCAnalysis.h:5
 AliLRCAnalysis.h:6
 AliLRCAnalysis.h:7
 AliLRCAnalysis.h:8
 AliLRCAnalysis.h:9
 AliLRCAnalysis.h:10
 AliLRCAnalysis.h:11
 AliLRCAnalysis.h:12
 AliLRCAnalysis.h:13
 AliLRCAnalysis.h:14
 AliLRCAnalysis.h:15
 AliLRCAnalysis.h:16
 AliLRCAnalysis.h:17
 AliLRCAnalysis.h:18
 AliLRCAnalysis.h:19
 AliLRCAnalysis.h:20
 AliLRCAnalysis.h:21
 AliLRCAnalysis.h:22
 AliLRCAnalysis.h:23
 AliLRCAnalysis.h:24
 AliLRCAnalysis.h:25
 AliLRCAnalysis.h:26
 AliLRCAnalysis.h:27
 AliLRCAnalysis.h:28
 AliLRCAnalysis.h:29
 AliLRCAnalysis.h:30
 AliLRCAnalysis.h:31
 AliLRCAnalysis.h:32
 AliLRCAnalysis.h:33
 AliLRCAnalysis.h:34
 AliLRCAnalysis.h:35
 AliLRCAnalysis.h:36
 AliLRCAnalysis.h:37
 AliLRCAnalysis.h:38
 AliLRCAnalysis.h:39
 AliLRCAnalysis.h:40
 AliLRCAnalysis.h:41
 AliLRCAnalysis.h:42
 AliLRCAnalysis.h:43
 AliLRCAnalysis.h:44
 AliLRCAnalysis.h:45
 AliLRCAnalysis.h:46
 AliLRCAnalysis.h:47
 AliLRCAnalysis.h:48
 AliLRCAnalysis.h:49
 AliLRCAnalysis.h:50
 AliLRCAnalysis.h:51
 AliLRCAnalysis.h:52
 AliLRCAnalysis.h:53
 AliLRCAnalysis.h:54
 AliLRCAnalysis.h:55
 AliLRCAnalysis.h:56
 AliLRCAnalysis.h:57
 AliLRCAnalysis.h:58
 AliLRCAnalysis.h:59
 AliLRCAnalysis.h:60
 AliLRCAnalysis.h:61
 AliLRCAnalysis.h:62
 AliLRCAnalysis.h:63
 AliLRCAnalysis.h:64
 AliLRCAnalysis.h:65
 AliLRCAnalysis.h:66
 AliLRCAnalysis.h:67
 AliLRCAnalysis.h:68
 AliLRCAnalysis.h:69
 AliLRCAnalysis.h:70
 AliLRCAnalysis.h:71
 AliLRCAnalysis.h:72
 AliLRCAnalysis.h:73
 AliLRCAnalysis.h:74
 AliLRCAnalysis.h:75
 AliLRCAnalysis.h:76
 AliLRCAnalysis.h:77
 AliLRCAnalysis.h:78
 AliLRCAnalysis.h:79
 AliLRCAnalysis.h:80
 AliLRCAnalysis.h:81
 AliLRCAnalysis.h:82
 AliLRCAnalysis.h:83
 AliLRCAnalysis.h:84
 AliLRCAnalysis.h:85
 AliLRCAnalysis.h:86
 AliLRCAnalysis.h:87
 AliLRCAnalysis.h:88
 AliLRCAnalysis.h:89
 AliLRCAnalysis.h:90
 AliLRCAnalysis.h:91
 AliLRCAnalysis.h:92
 AliLRCAnalysis.h:93
 AliLRCAnalysis.h:94
 AliLRCAnalysis.h:95
 AliLRCAnalysis.h:96
 AliLRCAnalysis.h:97
 AliLRCAnalysis.h:98
 AliLRCAnalysis.h:99
 AliLRCAnalysis.h:100
 AliLRCAnalysis.h:101
 AliLRCAnalysis.h:102
 AliLRCAnalysis.h:103
 AliLRCAnalysis.h:104
 AliLRCAnalysis.h:105
 AliLRCAnalysis.h:106
 AliLRCAnalysis.h:107
 AliLRCAnalysis.h:108
 AliLRCAnalysis.h:109
 AliLRCAnalysis.h:110
 AliLRCAnalysis.h:111
 AliLRCAnalysis.h:112
 AliLRCAnalysis.h:113