ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/
//
// Toolkit containing various usefull things
// Usable everywhere in the hfe software package
// For more information see the cxx file
//
#ifndef ALIHFETOOLS_H
#define ALIHFETOOLS_H

#include <TObject.h>

class TArrayD;
class TParticle;
class AliAODMCParticle;
class AliPIDResponse;
class AliVParticle;
class TGraph;
class TGraphErrors;
class TGraphAsymmErrors;
class TH1D;
class TH1;
class TF1;
class TString;

class AliHFEtools : public TObject{
  public:
    AliHFEtools();
    ~AliHFEtools() {};

    static Double_t *MakeLinearBinning(Int_t nBins, Double_t ymin, Double_t ymax);
    static Double_t *MakeLogarithmicBinning(Int_t nBins, Double_t ymin, Double_t ymax);
    static void FillLinearBinning(TArrayD &bins, Int_t nBins, Double_t ymin, Double_t ymax);
    static void FillLogarithmicBinning(TArrayD &bins, Int_t nBins, Double_t ymin, Double_t ymax);
    Bool_t    BinLogAxis(TObject *o, Int_t dim);
    static Float_t GetRapidity(const TParticle *part);
    static Float_t GetRapidity(const AliAODMCParticle *part); // return rapidity
    static Int_t GetPdg(const AliVParticle *track);
    static Int_t PDG2AliPID(Int_t pdg);
    static AliPIDResponse *GetDefaultPID(Bool_t isMC = kTRUE, Bool_t isESD = kTRUE);
    static void DestroyDefaultPID();
    static void SetLogLevel(Int_t loglevel) { fgLogLevel = loglevel ;}
    static TH1D* GraphErrorsToHist(TGraphErrors* g = 0, Double_t firstBinWidth = -1, Bool_t exchange=kFALSE, Int_t markerstyle=8, Int_t markercolor=2, Float_t markersize=0.7);
    static TH1D* GraphToHist(TGraph* g = 0, Double_t firstBinWidth = -1, Bool_t exchange=kFALSE, Int_t markerstyle=8, Int_t markercolor=2, Float_t markersize=0.7);
    static Bool_t ExchangeXYGraph(TGraph* g = 0);
    static Bool_t ExchangeXYGraphErrors(TGraphErrors* g = 0);
    static void BinParameterisation(const TF1 &fun, const TArrayD &xbins, TArrayD &bincontent);
    static TList *GetHFEResultList(const TString str);
    static TList *GetHFEQAList(const TString str);
    static void NormaliseBinWidth(TH1 *histo);
    static void NormaliseBinWdith(TGraphErrors *graph);
    static void NormaliseBinWdithAsymm(TGraphAsymmErrors *graph);

  private:
      AliHFEtools(const AliHFEtools &);
      AliHFEtools &operator=(const AliHFEtools &);
      static AliPIDResponse *fgDefaultPID;      // Default PID object
      static Int_t fgLogLevel;                  // Log Level

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