#ifndef ALIPERFORMANCEMATCH_H
#define ALIPERFORMANCEMATCH_H
class TString;
class TNamed;
class TCanvas;
class TH1F;
class TH2F;
class AliESDVertex;
class AliESDtrack;
class AliMCEvent;
class AliStack;
class AliTrackReference;
class AliESDEvent;
class AliESDfriend;
class AliESDfriendTrack;
class AliMCEvent;
class AliMCParticle;
class AliMCInfoCuts;
class AliRecInfoCuts;
class AliExternalTrackParam;
#include "THnSparse.h"
#include "AliPerformanceObject.h"
class AliPerformanceMatch : public AliPerformanceObject {
public :
AliPerformanceMatch(const Char_t* name="AliPerformanceMatch", const Char_t* title="AliPerformanceMatch",Int_t analysisMode=0,Bool_t hptGenerator=kFALSE);
virtual ~AliPerformanceMatch();
virtual void Init();
virtual void Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent,AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend);
virtual Long64_t Merge(TCollection* const list);
virtual void Analyse();
virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
void ProcessTPCITS(AliStack* const stack, AliESDtrack *const esdTrack);
void ProcessTPCTRD(AliStack* const stack, AliESDtrack *const esdTrack, AliESDfriendTrack *const friendTrack);
void ProcessITSTPC(Int_t trackIdx, AliESDEvent* const esdEvent, AliStack* const stack, AliESDtrack *const esdTrack);
void ProcessTPCConstrain(AliStack* const stack, AliESDEvent *const esdEvent, AliESDtrack *const esdTrack);
void FillHistograms(AliESDtrack *const refParam, AliESDtrack *const param, Bool_t isRec);
TFolder *CreateFolder(TString folder = "folderRes",TString title = "Analysed Resolution histograms");
TFolder *ExportToFolder(TObjArray * array=0);
void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;}
AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
TH1F* MakeResol(TH2F * his, Int_t integ=0, Bool_t type=kFALSE, Int_t cut=0);
THnSparse *GetResolHisto() const { return fResolHisto; }
THnSparse *GetPullHisto() const { return fPullHisto; }
THnSparse *GetTrackEffHisto() const { return fTrackingEffHisto; }
THnSparse *GetTPCConstrain() const { return fTPCConstrain; }
TObjArray* GetHistos() const { return fFolderObj; }
static Bool_t GetMergeTHnSparse() { return fgMergeTHnSparse; }
static void SetMergeTHnSparse(Bool_t mergeTHnSparse) {fgUseMergeTHnSparse = kTRUE; fgMergeTHnSparse = mergeTHnSparse; }
void SetUseHLT(Bool_t useHLT = kTRUE) {fUseHLT = useHLT;}
Bool_t GetUseHLT() { return fUseHLT; }
private:
static Bool_t fgMergeTHnSparse;
static Bool_t fgUseMergeTHnSparse;
THnSparseF *fResolHisto;
THnSparseF *fPullHisto;
THnSparseF *fTrackingEffHisto;
THnSparseF *fTPCConstrain;
TObjArray* fFolderObj;
AliRecInfoCuts* fCutsRC;
AliMCInfoCuts* fCutsMC;
TFolder *fAnalysisFolder;
Bool_t fUseHLT;
AliPerformanceMatch(const AliPerformanceMatch&);
AliPerformanceMatch& operator=(const AliPerformanceMatch&);
ClassDef(AliPerformanceMatch,3);
};
#endif
AliPerformanceMatch.h:100 AliPerformanceMatch.h:101 AliPerformanceMatch.h:102 AliPerformanceMatch.h:103 AliPerformanceMatch.h:104 AliPerformanceMatch.h:105 AliPerformanceMatch.h:106 AliPerformanceMatch.h:107 AliPerformanceMatch.h:108 AliPerformanceMatch.h:109 AliPerformanceMatch.h:110 AliPerformanceMatch.h:111 AliPerformanceMatch.h:112 AliPerformanceMatch.h:113 AliPerformanceMatch.h:114 AliPerformanceMatch.h:115 AliPerformanceMatch.h:116 AliPerformanceMatch.h:117 AliPerformanceMatch.h:118 AliPerformanceMatch.h:119 AliPerformanceMatch.h:120 AliPerformanceMatch.h:121 AliPerformanceMatch.h:122 AliPerformanceMatch.h:123 AliPerformanceMatch.h:124 AliPerformanceMatch.h:125 AliPerformanceMatch.h:126 AliPerformanceMatch.h:127 AliPerformanceMatch.h:128 AliPerformanceMatch.h:129 AliPerformanceMatch.h:130 AliPerformanceMatch.h:131 AliPerformanceMatch.h:132 AliPerformanceMatch.h:133 AliPerformanceMatch.h:134 AliPerformanceMatch.h:135 AliPerformanceMatch.h:136 AliPerformanceMatch.h:137 AliPerformanceMatch.h:138