ROOT logo
#ifndef ALICORRECTIONMATRIX_H
#define ALICORRECTIONMATRIX_H

/* $Id$ */

// ------------------------------------------------------
//
// Class to handle corrections.
//
// ------------------------------------------------------
//
// TODO:
//
// - add options in draw method
//

#include <TNamed.h>

class TH1;

class AliCorrectionMatrix : public TNamed
{
protected: // do not create this baseclass
  AliCorrectionMatrix();
  AliCorrectionMatrix(const Char_t* name, const Char_t* title);
  AliCorrectionMatrix(const AliCorrectionMatrix& c);
  virtual ~AliCorrectionMatrix();
  AliCorrectionMatrix& operator=(const AliCorrectionMatrix& corrMatrix);

public:
  virtual void Copy(TObject& c) const;
  virtual Long64_t Merge(TCollection* list);

  TH1* GetGeneratedHistogram() { return fhGene; }
  TH1* GetMeasuredHistogram()  { return fhMeas; }
  TH1* GetCorrectionHistogram() { return fhCorr; }

  void SetGeneratedHistogram(TH1* agene) { fhGene = agene; }
  void SetMeasuredHistogram(TH1* ameas)  { fhMeas = ameas; }
  void SetCorrectionHistogram(TH1* acorr) { fhCorr = acorr; }

  void Divide();
  void Multiply();
  void SetCorrectionToUnity();
  void ResetErrorsOnCorrections();
  void Scale(Double_t factor);

  void Add(AliCorrectionMatrix* aMatrixToAdd, Float_t c=1);

  void SetAxisTitles(const Char_t* titleX="", const Char_t* titleY="", const Char_t* titleZ="");

  virtual Bool_t LoadHistograms(const Char_t* dir = 0);
  virtual void SaveHistograms();

  virtual void DrawHistograms(const Char_t* canvasName = 0);

  virtual void ReduceInformation();

  virtual void Reset(Option_t* option = "");

protected:
  TH1*    fhMeas;  // histogram of measured particles (or tracks)
  TH1*    fhGene;  // histogram of generated particles

  TH1*    fhCorr;  // correction histogram (ratio generated/measured)

  ClassDef(AliCorrectionMatrix,1)
};

#endif

 AliCorrectionMatrix.h:1
 AliCorrectionMatrix.h:2
 AliCorrectionMatrix.h:3
 AliCorrectionMatrix.h:4
 AliCorrectionMatrix.h:5
 AliCorrectionMatrix.h:6
 AliCorrectionMatrix.h:7
 AliCorrectionMatrix.h:8
 AliCorrectionMatrix.h:9
 AliCorrectionMatrix.h:10
 AliCorrectionMatrix.h:11
 AliCorrectionMatrix.h:12
 AliCorrectionMatrix.h:13
 AliCorrectionMatrix.h:14
 AliCorrectionMatrix.h:15
 AliCorrectionMatrix.h:16
 AliCorrectionMatrix.h:17
 AliCorrectionMatrix.h:18
 AliCorrectionMatrix.h:19
 AliCorrectionMatrix.h:20
 AliCorrectionMatrix.h:21
 AliCorrectionMatrix.h:22
 AliCorrectionMatrix.h:23
 AliCorrectionMatrix.h:24
 AliCorrectionMatrix.h:25
 AliCorrectionMatrix.h:26
 AliCorrectionMatrix.h:27
 AliCorrectionMatrix.h:28
 AliCorrectionMatrix.h:29
 AliCorrectionMatrix.h:30
 AliCorrectionMatrix.h:31
 AliCorrectionMatrix.h:32
 AliCorrectionMatrix.h:33
 AliCorrectionMatrix.h:34
 AliCorrectionMatrix.h:35
 AliCorrectionMatrix.h:36
 AliCorrectionMatrix.h:37
 AliCorrectionMatrix.h:38
 AliCorrectionMatrix.h:39
 AliCorrectionMatrix.h:40
 AliCorrectionMatrix.h:41
 AliCorrectionMatrix.h:42
 AliCorrectionMatrix.h:43
 AliCorrectionMatrix.h:44
 AliCorrectionMatrix.h:45
 AliCorrectionMatrix.h:46
 AliCorrectionMatrix.h:47
 AliCorrectionMatrix.h:48
 AliCorrectionMatrix.h:49
 AliCorrectionMatrix.h:50
 AliCorrectionMatrix.h:51
 AliCorrectionMatrix.h:52
 AliCorrectionMatrix.h:53
 AliCorrectionMatrix.h:54
 AliCorrectionMatrix.h:55
 AliCorrectionMatrix.h:56
 AliCorrectionMatrix.h:57
 AliCorrectionMatrix.h:58
 AliCorrectionMatrix.h:59
 AliCorrectionMatrix.h:60
 AliCorrectionMatrix.h:61
 AliCorrectionMatrix.h:62
 AliCorrectionMatrix.h:63
 AliCorrectionMatrix.h:64
 AliCorrectionMatrix.h:65
 AliCorrectionMatrix.h:66
 AliCorrectionMatrix.h:67
 AliCorrectionMatrix.h:68
 AliCorrectionMatrix.h:69
 AliCorrectionMatrix.h:70
 AliCorrectionMatrix.h:71