Compilation on Windows/Cygwin
[u/mrichter/AliRoot.git] / JETAN / AliJetFillUnitArrayTracks.h
1 #ifndef ALIJETFILLUNITARRAYTRACKS_H
2 #define ALIJETFILLUNITARRAYTRACKS_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 // Jet Fill Unit Array 
9 // Called by ESD Reader for jet analysis
10 // Author: Magali Estienne (magali.estienne@subatech.in2p3.fr)
11 //---------------------------------------------------------------------
12
13 #ifndef ROOT_TTask
14 #include "TTask.h"
15 #endif
16
17 #include <TMatrixD.h>
18 #include <TArrayD.h>
19
20 class AliJetHadronCorrection;
21 class AliJetReader;
22 class AliJetESDReader;
23 class TClonesArray;
24 class TRefArray;
25 class AliJetGrid;
26 class AliJetDummyGeo;
27 class AliESD;
28 class AliESDEvent;
29
30 class AliJetFillUnitArrayTracks : public TTask
31 {
32  public: 
33   AliJetFillUnitArrayTracks();
34   //PH  AliJetFillUnitArrayTracks(AliESD *fESD);
35   AliJetFillUnitArrayTracks(AliESDEvent *fESD);
36   virtual ~AliJetFillUnitArrayTracks();
37   
38   // Setter
39   void SetReaderHeader(AliJetReaderHeader *readerHeader) {fReaderHeader = readerHeader;}
40   void SetGeom(AliJetDummyGeo *geom) {fGeom = geom;}
41   void SetMomentumArray(TClonesArray *momentumArray) {fMomentumArray = momentumArray;}
42   void SetUnitArray(TClonesArray *unitArray) {fUnitArray = unitArray;}
43   void SetRefArray(TRefArray *refArray) {fRefArray = refArray;}
44   void SetHadCorrection(Int_t flag = 1) {fHCorrection = flag;}
45   void SetHadCorrector(AliJetHadronCorrectionv1* corr) {fHadCorr = corr;}
46   void SetTPCGrid(AliJetGrid *grid) {fTPCGrid = grid;}
47   void SetEMCalGrid(AliJetGrid *grid) {fEMCalGrid = grid;}
48   //PH  void SetGrid(Double_t phiMin,Double_t phiMax,Double_t etaMin,Double_t etaMax);
49   //  void SetESD(AliESD *esd) {fESD = esd;}
50   void SetESD(AliESDEvent *esd) {fESD = esd;}
51   void SetGrid0(AliJetGrid *grid0){fGrid0 = grid0;}
52   void SetGrid1(AliJetGrid *grid1){fGrid1 = grid1;}
53   void SetGrid2(AliJetGrid *grid2){fGrid2 = grid2;}
54   void SetGrid3(AliJetGrid *grid3){fGrid3 = grid3;}
55   void SetGrid4(AliJetGrid *grid4){fGrid4 = grid4;}
56
57   // Getter
58   TClonesArray* GetUnitArray() {return fUnitArray;}
59   TRefArray*    GetRefArray() {return fRefArray;}
60   //  Int_t         GetIndexFromEtaPhi(Double_t eta,Double_t phi) const;
61   void          GetEtaPhiFromIndex(Int_t index,Float_t &eta,Float_t &phi);
62   Int_t         GetNeta()          const {return fNeta;}
63   Int_t         GetNphi()          const {return fNphi;}
64   Int_t         GetHadCorrection() const {return fHCorrection;}
65   Int_t         GetMult()          const {return fNTracks;}
66   Int_t         GetMultCut()       const {return fNTracksCut;}
67   void          Exec(Option_t*);
68
69  protected:
70   Int_t   fNumUnits;      // Number of units in the unit object array (same as num towers in EMCAL)
71   Float_t fEtaMinCal;     // Define EMCal acceptance in Eta
72   Float_t fEtaMaxCal;     // Define EMCal acceptance in Eta
73   Float_t fPhiMinCal;     // Define EMCal acceptance in Phi
74   Float_t fPhiMaxCal;     // Define EMCal acceptance in Phi
75   AliJetHadronCorrectionv1   *fHadCorr;         // Pointer to Hadron Correction Object
76   Int_t                       fHCorrection;     //  Hadron correction flag
77   Int_t                       fNTracks;         // Number of tracks stored in UnitArray
78   Int_t                       fNTracksCut;      // Number of tracks stored in UnitArray with a pt cut 
79   Int_t                       fOpt;             // Detector to be used for jet reconstruction
80   Bool_t                      fDZ;              // Use or not dead zones
81   Int_t                       fDebug;           // Debug option
82
83   AliJetReaderHeader          *fReaderHeader;   // ReaderHeader
84   TClonesArray                *fMomentumArray;  // MomentumArray
85   TClonesArray                *fUnitArray;      // UnitArray
86   TRefArray                   *fRefArray;       // UnitArray
87   AliJetGrid                  *fTPCGrid;        // Define filled grid
88   AliJetGrid                  *fEMCalGrid;      // Define filled grid
89   AliJetDummyGeo              *fGeom;           // Define EMCal geometry
90   AliESDEvent                 *fESD;            // ESD
91   AliJetGrid                  *fGrid0;          // Pointer to Grid 1
92   AliJetGrid                  *fGrid1;          // Pointer to Grid 2
93   AliJetGrid                  *fGrid2;          // Pointer to Grid 3
94   AliJetGrid                  *fGrid3;          // Pointer to Grid 4
95   AliJetGrid                  *fGrid4;          // Pointer to Grid 5  
96
97   Int_t     fNphi;                    // number of points in the grid:   phi
98   Int_t     fNeta;                    //               "                 eta
99   TArrayD*  fPhi2;                    // grid points in phi
100   TArrayD*  fEta2;                    // grid points in eta
101   TArrayD*  fPhi;                     // grid points in phi
102   TArrayD*  fEta;                     // grid points in eta
103   TMatrixD* fIndex;                   // grid points in (phi,eta) 
104   TMatrixD* fParams;                  // matrix of parameters in the grid points  
105   Int_t     fGrid;                    // Select the grid acceptance you want to fill
106                                       // 0 = TPC acceptance, 1 = TPC-EMCal acceptance
107   Float_t   fPhiMin;                  // minimum phi
108   Float_t   fPhiMax;                  // maximum phi
109   Float_t   fEtaMin;                  // minimum eta
110   Float_t   fEtaMax;                  // maximum eta   
111   Int_t     fEtaBinInTPCAcc;          // eta bins in tpc acceptance
112   Int_t     fPhiBinInTPCAcc;          // phi bins in tpc acceptance 
113   Int_t     fEtaBinInEMCalAcc;        // eta bins in emcal acceptance
114   Int_t     fPhiBinInEMCalAcc;        // phi bins in emcal acceptance
115   Int_t     fNbinPhi;                 // number of phi bins
116
117  private:
118   AliJetFillUnitArrayTracks(const AliJetFillUnitArrayTracks &det);
119   AliJetFillUnitArrayTracks &operator=(const AliJetFillUnitArrayTracks &det);
120   //  void SetEMCALGeometry();
121   void InitParameters();
122
123   ClassDef(AliJetFillUnitArrayTracks,1) // Fill Unit Array with tpc and/or emcal information
124 };
125
126 #endif