1 #ifndef ALITRACKCOMAPRISONESD_H
2 #define ALITRACKCOMAPRISONESD_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
11 #include "AliAnalysisTask.h"
12 #include "TObjArray.h"
13 #include "TRefArray.h"
15 class AliEMCALGeometry;
20 class AliESDfriendTrack;
21 class AliESDtrackCuts;
23 class AliESDCaloCells;
24 class AliCalorimeterUtils;
26 class AliTrackComparison;
28 class AliTrackComparisonESD:public AliAnalysisTask {
30 AliTrackComparisonESD();
31 AliTrackComparisonESD(const char *name);
32 virtual ~AliTrackComparisonESD();
34 virtual void ConnectInputData(Option_t *option);
35 virtual void CreateOutputObjects();
36 virtual void Exec(Option_t *option);
37 virtual void Terminate(Option_t *option);
38 virtual void FinishTaskOutput();
39 void SetDebugOuputhPath(const char * name){fDebugOutputPath=name;}
40 void SetOcdbPath(const char *path){fOcdbPath=path;}
41 TString GetOcdbPath(){return fOcdbPath;}
44 void ProcessTOF(AliESDtrack *track, AliESDfriendTrack *friendTrack, Double_t *vPos);
45 void ProcessEMCAL(AliESDtrack *track, AliESDfriendTrack *friendTrack, TRefArray *clusters,AliESDCaloCells *cells, Double_t *vPos);
46 void ProcessHMPID(AliESDtrack *track, AliESDfriendTrack *friendTrack,Double_t *vPos);
48 TObjArray *GetComparisonOutput() {return fOutput;}
51 void RecalClusterPos(TRefArray *clusters, AliESDCaloCells *cells);
52 void SetResidualCut(Double_t cutR) {fCutR=cutR;}
55 virtual Long64_t Merge(TCollection *li);
56 virtual void Analyze();
57 void RegisterDebugOutput();
59 AliESDEvent *fESD; //! current esd
60 AliESDtrackCuts *fESDCuts; //! esd track cuts
61 AliESDfriend *fESDfriend; //! current esd friend
62 Int_t fCurrentRun; //Current run number
63 TString fDebugOutputPath; // debug output path
66 TObjArray *fOutput; //Output array for fEMCAL,fHMPID,fTOF
67 AliTrackComparison *fEMCAL; // EMCAL track comparison
68 AliTrackComparison *fHMPID; //HMPID track comparison
69 AliTrackComparison *fTOF; // TOF track comparison
71 AliEMCALGeometry *fGeom; //EMCAL geometry for position calculation
72 Double_t fCutR; //Track residual cut
74 TGeoHMatrix *fTransMatrix[4]; //EMCal misalignment matrices
75 AliCalorimeterUtils *fCaloUtil; //EMCal utils to exclude bad cells
77 AliTrackComparisonESD(const AliTrackComparisonESD&);
78 AliTrackComparisonESD& operator=(const AliTrackComparisonESD&);
81 ClassDef(AliTrackComparisonESD,2)