]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJetFillUnitArrayTracks.h
New raw-reader class which deals with events taken from shared memory via the DATE...
[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   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   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  private:
69   AliJetFillUnitArrayTracks(const AliJetFillUnitArrayTracks &det);
70   AliJetFillUnitArrayTracks &operator=(const AliJetFillUnitArrayTracks &det);
71
72  protected:
73   Int_t   fNumUnits;      // Number of units in the unit object array (same as num towers in EMCAL)
74   Float_t fEtaMinCal;     // Define EMCal acceptance in Eta
75   Float_t fEtaMaxCal;     // Define EMCal acceptance in Eta
76   Float_t fPhiMinCal;     // Define EMCal acceptance in Phi
77   Float_t fPhiMaxCal;     // Define EMCal acceptance in Phi
78   AliJetHadronCorrectionv1   *fHadCorr;         // Pointer to Hadron Correction Object
79   Int_t                       fHCorrection;     //  Hadron correction flag
80   Int_t                       fNTracks;         // Number of tracks stored in UnitArray
81   Int_t                       fNTracksCut;      // Number of tracks stored in UnitArray with a pt cut 
82   Int_t                       fOpt;             // Detector to be used for jet reconstruction
83   Bool_t                      fDZ;              // Use or not dead zones
84   Int_t                       fDebug;           // Debug option
85
86   AliJetReaderHeader          *fReaderHeader;   // ReaderHeader
87   TClonesArray                *fMomentumArray;  // MomentumArray
88   TClonesArray                *fUnitArray;      // UnitArray
89   TRefArray                   *fRefArray;       // UnitArray
90   AliJetGrid                  *fTPCGrid;        // Define filled grid
91   AliJetGrid                  *fEMCalGrid;      // Define filled grid
92   AliJetDummyGeo              *fGeom;           // Define EMCal geometry
93   AliESDEvent                 *fESD;            // ESD
94   AliJetGrid                  *fGrid0;          // Pointer to Grid 1
95   AliJetGrid                  *fGrid1;          // Pointer to Grid 2
96   AliJetGrid                  *fGrid2;          // Pointer to Grid 3
97   AliJetGrid                  *fGrid3;          // Pointer to Grid 4
98   AliJetGrid                  *fGrid4;          // Pointer to Grid 5  
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;                  // minimum phi
111   Float_t   fPhiMax;                  // maximum phi
112   Float_t   fEtaMin;                  // minimum eta
113   Float_t   fEtaMax;                  // maximum eta   
114   Int_t     fEtaBinInTPCAcc;          // eta bins in tpc acceptance
115   Int_t     fPhiBinInTPCAcc;          // phi bins in tpc acceptance 
116   Int_t     fEtaBinInEMCalAcc;        // eta bins in emcal acceptance
117   Int_t     fPhiBinInEMCalAcc;        // phi bins in emcal acceptance
118   Int_t     fNbinPhi;                 // number of phi bins
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