ROOT logo
#ifndef ALISPECTRAAODHISTOMANAGER_H
#define ALISPECTRAAODHISTOMANAGER_H

/*  See cxx source for full Copyright notice */

//-------------------------------------------------------------------------
//                      AliSpectraAODHistoManager
//
//
//
//
// Authors: Michele Floris, CERN, Philip Versteeg, UU, Redmer Bertens, UU
//-------------------------------------------------------------------------

class AliAODEvent;
class TH1F;
class TH2F;
class TH1;
class TH2;
//class TList;
#include "TNamed.h"
#include "TList.h"
#include "Histograms.h" // Change this file if you want to add an histogram
#include "HistogramNames.h" // generate this automatically running createNames.py 

namespace AliSpectraNameSpace
{

   
   enum AODParticleSpecies_t
   {
     kSpPion,
     kSpKaon,
     kSpProton,
     kNSpecies,
     kSpUndefined,
   }; // Particle species used in plotting

   extern const char * kParticleSpecies[];

   enum AODHistoType_t
   {
     kHistPtGenTruePrimary,
     kHistPtRecSigma,
     kHistPtRecTrue,
     kHistPtRecTruePrimary,
     kHistPtRecSigmaPrimary,
     kHistPtRecSigmaSecondaryMaterial,
     kHistPtRecSigmaSecondaryWeakDecay,
     kHistNSigTPC,
     kHistNSigTOF,
     kHistNSigTPCTOF,
     kNHistoTypes
   }; // Types of histos

   enum AODCharge_t
   {
       kChPos = 0,
       kChNeg,
       kNCharge
   };

}

using namespace AliSpectraNameSpace;

class AliSpectraAODHistoManager : public TNamed
{
public:
   AliSpectraAODHistoManager() :  TNamed(), fOutputList(0), fNRebin(0) {}
  AliSpectraAODHistoManager(const char *name,Int_t nrebin);
   virtual  ~AliSpectraAODHistoManager() {}


   TH2F*   BookPtGenHistogram(const char * name);
   TH2F*   BookPtGenAllChHistogram(const char * name);
   TH2F*   BookPtRecHistogram(const char * name);
   TH2F*   BookPtRecAllChHistogram(const char * name);
   TH2F*   BookPIDHistogram(const char * name);
   TH2F*   BookNSigHistogram(const char * name);
   TH1F*   GetPtHistogram1D(const char * name,Double_t minDCA,Double_t maxDCA);
   TH1F*   GetDCAHistogram1D(const char * name,Double_t minPt,Double_t maxPt);
   TH2*     GetHistogram(UInt_t id)      {      return (TH2*) fOutputList->At(id);   }
   //   TH1*     GetHistogram(AODHistoType_t histoType, AODParticleSpecies_t particleType, UInt_t charge);
   TH1*     GetHistogram1D(UInt_t histoType, UInt_t particleType, UInt_t charge);
   TH2*     GetHistogram2D(UInt_t histoType, UInt_t particleType, UInt_t charge);
   TH2*     GetPtHistogram(UInt_t id)    {      return (TH2*) fOutputList->At(id);   }
   TH2*     GetPtHistogram(const char * name)   {      return (TH2*) fOutputList->FindObject(name);   }
   TH2*     GetPtHistogramByName(UInt_t id)     {      return (TH2*) fOutputList->FindObject(kHistName[id]); }  // Use this if you want to read a file saved with a different histo list   
   TH2*     GetPIDHistogram(UInt_t id)   {      return (TH2*) fOutputList->At(id);   }
   TH2*     GetPIDHistogram(const char * name)  {      return (TH2*) fOutputList->FindObject(name);   }
   TH2*     GetPIDHistogramByName(UInt_t id)    {      return (TH2*) fOutputList->FindObject(kHistName[id]);  }// Use this if you want to read a file saved with a different histo list
   TH2*     GetNSigHistogram(UInt_t id)   {      return (TH2*) fOutputList->At(id);   }
   TH2*     GetNSigHistogram(const char * name)  {      return (TH2*) fOutputList->FindObject(name);   }
   TH2*     GetNSigHistogramByName(UInt_t id)    {      return (TH2*) fOutputList->FindObject(kHistName[id]);  }// Use this if you want to read a file saved with a different histo list

   //TH1F*   GetTH1F(UInt_t id)            {      return (TH1F*) GetPtHistogram(id);   }
   //TH2F*   GetTH2F(UInt_t id)            {      return (TH2F*) GetPIDHistogram(id);   }

  TList * GetOutputList() {return fOutputList;}
  void    SetNRebin(Int_t nreb){fNRebin=nreb;}
  Int_t   GetNRebin() {return fNRebin;}

  Long64_t Merge(TCollection* list);


private:
   TList     *fOutputList;  // List of Pt Histo's
   Int_t      fNRebin; //rebin of histos
   AliSpectraAODHistoManager(const AliSpectraAODHistoManager&);
   AliSpectraAODHistoManager& operator=(const AliSpectraAODHistoManager&);

   ClassDef(AliSpectraAODHistoManager, 1);

};
#endif

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