ROOT logo
#ifndef ALITRACKCOMAPRISONESD_H
#define ALITRACKCOMAPRISONESD_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

////
////
////

#include "AliAnalysisTask.h"
#include "TObjArray.h"
#include "TRefArray.h"
class TGeoHMatrix;
class AliEMCALGeometry;
class AliESDEvent;
class AliESDfriend;

class AliESDtrack;
class AliESDfriendTrack;
class AliESDtrackCuts;

class AliESDCaloCells;
class AliCalorimeterUtils;

class AliTrackComparison;

class AliTrackComparisonESD:public AliAnalysisTask {
public:
  AliTrackComparisonESD();
  AliTrackComparisonESD(const char *name);
  virtual ~AliTrackComparisonESD();

  virtual void ConnectInputData(Option_t *option);
  virtual void CreateOutputObjects();
  virtual void Exec(Option_t *option);
  virtual void Terminate(Option_t *option);
  virtual void FinishTaskOutput();
  void         SetDebugOuputhPath(const char * name){fDebugOutputPath=name;}

  Bool_t SetupEvent();
  void ProcessTOF(AliESDtrack *track, AliESDfriendTrack *friendTrack, Double_t *vPos);
  void ProcessEMCAL(AliESDtrack *track, AliESDfriendTrack *friendTrack, TRefArray *clusters,AliESDCaloCells *cells, Double_t *vPos);
  void ProcessHMPID(AliESDtrack *track, AliESDfriendTrack *friendTrack,Double_t *vPos);

  TObjArray *GetComparisonOutput() {return fOutput;}

  void   InitCaloUtil();
  void   RecalClusterPos(TRefArray *clusters, AliESDCaloCells *cells);
  void   SetResidualCut(Double_t cutR) {fCutR=cutR;}

protected:
  virtual Long64_t Merge(TCollection *li);
  virtual void     Analyze();
  void             RegisterDebugOutput();
private:
  AliESDEvent *fESD;              //! current esd
  AliESDtrackCuts *fESDCuts;      //! esd track cuts
  AliESDfriend *fESDfriend;       //! current esd friend
  Int_t fCurrentRun;              //Current run number
  TString      fDebugOutputPath;  // debug output path
  
  TObjArray    *fOutput;          //Output array for fEMCAL,fHMPID,fTOF
  AliTrackComparison *fEMCAL;     // EMCAL track comparison
  AliTrackComparison *fHMPID;     //HMPID track comparison
  AliTrackComparison *fTOF;       // TOF track comparison
  //
  AliEMCALGeometry *fGeom;        //EMCAL geometry for position calculation
  Double_t  fCutR;                //Track residual cut

  TGeoHMatrix *fTransMatrix[4];   //EMCal misalignment matrices
  AliCalorimeterUtils *fCaloUtil; //EMCal utils to exclude bad cells

  AliTrackComparisonESD(const AliTrackComparisonESD&);
  AliTrackComparisonESD& operator=(const AliTrackComparisonESD&);


  ClassDef(AliTrackComparisonESD,2)
};

#endif
 AliTrackComparisonESD.h:1
 AliTrackComparisonESD.h:2
 AliTrackComparisonESD.h:3
 AliTrackComparisonESD.h:4
 AliTrackComparisonESD.h:5
 AliTrackComparisonESD.h:6
 AliTrackComparisonESD.h:7
 AliTrackComparisonESD.h:8
 AliTrackComparisonESD.h:9
 AliTrackComparisonESD.h:10
 AliTrackComparisonESD.h:11
 AliTrackComparisonESD.h:12
 AliTrackComparisonESD.h:13
 AliTrackComparisonESD.h:14
 AliTrackComparisonESD.h:15
 AliTrackComparisonESD.h:16
 AliTrackComparisonESD.h:17
 AliTrackComparisonESD.h:18
 AliTrackComparisonESD.h:19
 AliTrackComparisonESD.h:20
 AliTrackComparisonESD.h:21
 AliTrackComparisonESD.h:22
 AliTrackComparisonESD.h:23
 AliTrackComparisonESD.h:24
 AliTrackComparisonESD.h:25
 AliTrackComparisonESD.h:26
 AliTrackComparisonESD.h:27
 AliTrackComparisonESD.h:28
 AliTrackComparisonESD.h:29
 AliTrackComparisonESD.h:30
 AliTrackComparisonESD.h:31
 AliTrackComparisonESD.h:32
 AliTrackComparisonESD.h:33
 AliTrackComparisonESD.h:34
 AliTrackComparisonESD.h:35
 AliTrackComparisonESD.h:36
 AliTrackComparisonESD.h:37
 AliTrackComparisonESD.h:38
 AliTrackComparisonESD.h:39
 AliTrackComparisonESD.h:40
 AliTrackComparisonESD.h:41
 AliTrackComparisonESD.h:42
 AliTrackComparisonESD.h:43
 AliTrackComparisonESD.h:44
 AliTrackComparisonESD.h:45
 AliTrackComparisonESD.h:46
 AliTrackComparisonESD.h:47
 AliTrackComparisonESD.h:48
 AliTrackComparisonESD.h:49
 AliTrackComparisonESD.h:50
 AliTrackComparisonESD.h:51
 AliTrackComparisonESD.h:52
 AliTrackComparisonESD.h:53
 AliTrackComparisonESD.h:54
 AliTrackComparisonESD.h:55
 AliTrackComparisonESD.h:56
 AliTrackComparisonESD.h:57
 AliTrackComparisonESD.h:58
 AliTrackComparisonESD.h:59
 AliTrackComparisonESD.h:60
 AliTrackComparisonESD.h:61
 AliTrackComparisonESD.h:62
 AliTrackComparisonESD.h:63
 AliTrackComparisonESD.h:64
 AliTrackComparisonESD.h:65
 AliTrackComparisonESD.h:66
 AliTrackComparisonESD.h:67
 AliTrackComparisonESD.h:68
 AliTrackComparisonESD.h:69
 AliTrackComparisonESD.h:70
 AliTrackComparisonESD.h:71
 AliTrackComparisonESD.h:72
 AliTrackComparisonESD.h:73
 AliTrackComparisonESD.h:74
 AliTrackComparisonESD.h:75
 AliTrackComparisonESD.h:76
 AliTrackComparisonESD.h:77
 AliTrackComparisonESD.h:78
 AliTrackComparisonESD.h:79
 AliTrackComparisonESD.h:80
 AliTrackComparisonESD.h:81