1 #ifndef ALIJEFFICIENCY_H
2 #define ALIJEFFICIENCY_H
3 // Class to Load and Get efficiency inforamtion
9 #include "AliJTrackCut.h"
10 #include "AliJRunTable.h"
11 #include "AliJConst.h"
12 #include <TGraphErrors.h>
19 enum Mode { kNotUse, kPeriod, kRunNumber, kAuto };
20 enum Type { kRE, kMC, kMerge };
22 AliJEfficiency(const AliJEfficiency& obj);
23 AliJEfficiency& operator=(const AliJEfficiency& obj);
25 void SetMode( int i ){ fMode = i; }
27 void SetDataPath(TString s ){ fDataPath=s; }
28 void SetEffFile(TString s ){ fInputRootName=s; }
29 void SetName(TString s ){ fName=s; }
30 void SetPeriod(int period){ fPeriod = period; }
31 void SetPeriod(TString s){ fPeriodStr = s; }
32 void SetMCPeriod(TString s){ fMCPeriodStr = s; }
33 void SetRunNumber( Long64_t runnum ){ fRunNumber=runnum; }
34 void SetTag(TString s){ fTag=s; }
36 TString GetName() const { return fName; }
37 double GetCorrection( double pt, int icut, double cent ) const ;
38 TString GetEffName() ;
39 TString GetEffFullName() ;
41 void PrintOut() const {
42 cout<<fInputRootName<<endl;
47 int fMode; // Mode. see enum Mode
48 int fPeriod; // Data Period index
49 AliJTrackCut fTrackCut; // Track Cut Object. TODO:why not pointer?
50 AliJRunTable fRunTable; // run Table. TODO:why not pointer?
52 TString fDataPath; // locaction of eff files
53 TString fName; // name of efficiency. usually empty
54 TString fPeriodStr; // DATA period
55 TString fMCPeriodStr; // MC period
56 Long64_t fRunNumber; // Runnumber
57 TString fTag; // Tags to distinguish special eff file
58 TString fInputRootName; // name of input
60 TFile * fInputRoot; // input file
61 TDirectory * fEffDir[3]; // root directory of efficiency. only fEffDir[2] with "Efficiency" is being used.
62 TGraphErrors * fCorrection[20][20][20]; // Storage of Correction factor
63 TAxis * fCentBin; // Bin of Centrality. replace with AliJBin?