]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliTrackComparisonESD.h
first implementation of the global alignment QA
[u/mrichter/AliRoot.git] / PWG1 / AliTrackComparisonESD.h
1 #ifndef ALITRACKCOMAPRISONESD_H
2 #define ALITRACKCOMAPRISONESD_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////
8 ////
9 ////
10
11 #include "AliAnalysisTask.h"
12 #include "TObjArray.h"
13 #include "TRefArray.h"
14 class TGeoHMatrix;
15 class AliEMCALGeometry;
16 class AliESDEvent;
17 class AliESDfriend;
18
19 class AliESDtrack;
20 class AliESDfriendTrack;
21 class AliESDtrackCuts;
22
23 class AliESDCaloCells;
24
25 class AliTrackComparison;
26
27 class AliTrackComparisonESD:public AliAnalysisTask {
28 public:
29   AliTrackComparisonESD();
30   AliTrackComparisonESD(const char *name);
31   virtual ~AliTrackComparisonESD();
32
33   virtual void ConnectInputData(Option_t *option);
34   virtual void CreateOutputObjects();
35   virtual void Exec(Option_t *option);
36   virtual void Terminate(Option_t *option);
37   virtual void FinishTaskOutput();
38   void         SetDebugOuputhPath(const char * name){fDebugOutputPath=name;}
39   //void         SetOcdbPath(const char *path){fOcdbPath=path;}
40   //  TString      GetOcdbPath(){return fOcdbPath;}
41
42   Bool_t SetupEvent();
43   void ProcessTOF(AliESDtrack *track, AliESDfriendTrack *friendTrack, Double_t *vPos);
44   void ProcessEMCAL(AliESDtrack *track, AliESDfriendTrack *friendTrack, TRefArray *clusters, Double_t *vPos);
45   void ProcessHMPID(AliESDtrack *track, AliESDfriendTrack *friendTrack,Double_t *vPos);
46
47   TObjArray *GetComparisonOutput() {return fOutput;}
48
49   void RecalClusterPos(TRefArray *clusters, AliESDCaloCells *cells);
50   void  SetCutWindow(Double_t cutX, Double_t cutY, Double_t cutZ)
51   {fCutX=cutX;fCutY=cutY;fCutZ=cutZ;}
52
53 protected:
54   virtual Long64_t Merge(TCollection *li);
55   virtual void     Analyze();
56   void             RegisterDebugOutput();
57 private:
58   AliESDEvent *fESD;         //! current esd
59   AliESDtrackCuts *fESDCuts; //! esd track cuts
60   AliESDfriend *fESDfriend;  //! current esd friend
61   Int_t fCurrentRun;
62   TString      fDebugOutputPath; // debug output path
63   //  TString      fOcdbPath;
64   
65   TObjArray    *fOutput;    //Output array for fEMCAL,fHMPID,fTOF
66   AliTrackComparison *fEMCAL;            // EMCAL track comparison
67   AliTrackComparison *fHMPID;             //HMPID track comparison
68   AliTrackComparison *fTOF;              // TOF track comparison
69   //
70   AliEMCALGeometry *fGeom; //EMCAL geometry for position calculation
71   Double_t  fCutX; 
72   Double_t  fCutY;
73   Double_t  fCutZ;
74   TGeoHMatrix *fTransMatrix[4];
75
76   AliTrackComparisonESD(const AliTrackComparisonESD&);
77   AliTrackComparisonESD& operator=(const AliTrackComparisonESD&);
78
79
80   ClassDef(AliTrackComparisonESD,1)
81 };
82
83 #endif