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