Added script to draw calibrated raw data
[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 AliEMCALGeometry;
21 class AliJetDummyGeo;
22 class AliJetHadronCorrection;
23 class AliJetReader;
24 class AliJetESDReader;
25 class TClonesArray;
26 class TRefArray;
27 class AliJetGrid;
28 class AliEMCALGeometry;
29 class AliJetDummyGeo;
30 class AliESD;
31 class AliESDEvent;
32
33 class AliJetFillUnitArrayTracks : public TTask
34 {
35  public: 
36   AliJetFillUnitArrayTracks();
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(AliESDEvent *esd) {fESD = esd;}
52   void          SetGrid0(AliJetGrid *grid0){fGrid0 = grid0;}
53   void          SetGrid1(AliJetGrid *grid1){fGrid1 = grid1;}
54   void          SetGrid2(AliJetGrid *grid2){fGrid2 = grid2;}
55   void          SetGrid3(AliJetGrid *grid3){fGrid3 = grid3;}
56   void          SetGrid4(AliJetGrid *grid4){fGrid4 = grid4;}
57   void          SetProcId(Bool_t id) {fProcId = id;}
58   Bool_t        GetProcId() {return fProcId;}
59
60   // Getter
61   TClonesArray* GetUnitArray() {return fUnitArray;}
62   TRefArray*    GetRefArray() {return fRefArray;}
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   Bool_t                      fProcId;          // Bool_t for TProcessID synchronization  
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;          // Grid used for dead zones definition
95   AliJetGrid                  *fGrid1;          // Grid used for dead zones definition
96   AliJetGrid                  *fGrid2;          // Grid used for dead zones definition
97   AliJetGrid                  *fGrid3;          // Grid used for dead zones definition
98   AliJetGrid                  *fGrid4;          // Grid used for dead zones definition
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   AliJetFillUnitArrayTracks(const AliJetFillUnitArrayTracks &det);
122   AliJetFillUnitArrayTracks &operator=(const AliJetFillUnitArrayTracks &det);
123   void InitParameters();
124
125   ClassDef(AliJetFillUnitArrayTracks,1) // Fill Unit Array with tpc and/or emcal information
126 };
127
128 #endif