ROOT logo
#ifndef ALIJEFFICIENCY_H
#define ALIJEFFICIENCY_H
// Class to Load and Get efficiency inforamtion
// ..
// TODO

#include <TString.h>
#include <TFile.h>
#include "AliJTrackCut.h"
#include "AliJRunTable.h"
#include "AliJConst.h"
#include <TGraphErrors.h>
#include <TAxis.h>
#include <iostream>
using namespace std;

class AliJEfficiency{
    public:
        enum Mode { kNotUse, kPeriod, kRunNumber, kAuto };
        enum Type { kRE, kMC, kMerge };
        AliJEfficiency();
        AliJEfficiency(const AliJEfficiency& obj);
        AliJEfficiency& operator=(const AliJEfficiency& obj);

        void SetMode( int i ){ fMode = i; }

        void SetDataPath(TString s ){ fDataPath=s; }
        void SetEffFile(TString s ){ fInputRootName=s; }
        void SetName(TString s ){ fName=s; }
        void SetPeriod(int period){ fPeriod = period; }
        void SetPeriod(TString s){ fPeriodStr = s; }
        void SetMCPeriod(TString s){ fMCPeriodStr = s; }
        void SetRunNumber( Long64_t runnum ){ fRunNumber=runnum; }
        void SetTag(TString s){ fTag=s; }

        TString GetName() const { return fName; }
        double GetCorrection( double pt, int icut, double cent ) const ;
        TString GetEffName() ;
        TString GetEffFullName() ;
        bool   Load();
        void   PrintOut() const {
            cout<<fInputRootName<<endl;
        }
        void Write();

    private:
        int      fMode;             // Mode. see enum Mode
        int      fPeriod;           // Data Period index
        AliJTrackCut fTrackCut;     // Track Cut Object. TODO:why not pointer?
        AliJRunTable fRunTable;     // run Table. TODO:why not pointer?

        TString fDataPath;          // locaction of eff files
        TString fName;              // name of efficiency. usually empty
        TString fPeriodStr;         // DATA period
        TString fMCPeriodStr;       // MC period
        Long64_t fRunNumber;        // Runnumber
        TString fTag;               // Tags to distinguish special eff file
        TString fInputRootName;     // name of input

        TFile * fInputRoot;         // input file  
        TDirectory * fEffDir[3];    // root directory of efficiency. only second item of fEffDir with "Efficiency" is being used.
        TGraphErrors * fCorrection[20][20][20]; // Storage of Correction factor 
        TAxis * fCentBin;     // Bin of Centrality. replace with AliJBin?
};
#endif
 AliJEfficiency.h:1
 AliJEfficiency.h:2
 AliJEfficiency.h:3
 AliJEfficiency.h:4
 AliJEfficiency.h:5
 AliJEfficiency.h:6
 AliJEfficiency.h:7
 AliJEfficiency.h:8
 AliJEfficiency.h:9
 AliJEfficiency.h:10
 AliJEfficiency.h:11
 AliJEfficiency.h:12
 AliJEfficiency.h:13
 AliJEfficiency.h:14
 AliJEfficiency.h:15
 AliJEfficiency.h:16
 AliJEfficiency.h:17
 AliJEfficiency.h:18
 AliJEfficiency.h:19
 AliJEfficiency.h:20
 AliJEfficiency.h:21
 AliJEfficiency.h:22
 AliJEfficiency.h:23
 AliJEfficiency.h:24
 AliJEfficiency.h:25
 AliJEfficiency.h:26
 AliJEfficiency.h:27
 AliJEfficiency.h:28
 AliJEfficiency.h:29
 AliJEfficiency.h:30
 AliJEfficiency.h:31
 AliJEfficiency.h:32
 AliJEfficiency.h:33
 AliJEfficiency.h:34
 AliJEfficiency.h:35
 AliJEfficiency.h:36
 AliJEfficiency.h:37
 AliJEfficiency.h:38
 AliJEfficiency.h:39
 AliJEfficiency.h:40
 AliJEfficiency.h:41
 AliJEfficiency.h:42
 AliJEfficiency.h:43
 AliJEfficiency.h:44
 AliJEfficiency.h:45
 AliJEfficiency.h:46
 AliJEfficiency.h:47
 AliJEfficiency.h:48
 AliJEfficiency.h:49
 AliJEfficiency.h:50
 AliJEfficiency.h:51
 AliJEfficiency.h:52
 AliJEfficiency.h:53
 AliJEfficiency.h:54
 AliJEfficiency.h:55
 AliJEfficiency.h:56
 AliJEfficiency.h:57
 AliJEfficiency.h:58
 AliJEfficiency.h:59
 AliJEfficiency.h:60
 AliJEfficiency.h:61
 AliJEfficiency.h:62
 AliJEfficiency.h:63
 AliJEfficiency.h:64
 AliJEfficiency.h:65